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

public final class Monitoring {

    private Monitoring() {
    }

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

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

    public interface KpiDescriptorOrBuilder extends // @@protoc_insertion_point(interface_extends:monitoring.KpiDescriptor)
    com.google.protobuf.MessageOrBuilder {

        /**
         * <code>.monitoring.KpiId kpi_id = 1;</code>
         * @return Whether the kpiId field is set.
         */
        boolean hasKpiId();

        /**
         * <code>.monitoring.KpiId kpi_id = 1;</code>
         * @return The kpiId.
         */
        monitoring.Monitoring.KpiId getKpiId();

        /**
         * <code>.monitoring.KpiId kpi_id = 1;</code>
         */
        monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder();

        /**
         * <code>string kpi_description = 2;</code>
         * @return The kpiDescription.
         */
        java.lang.String getKpiDescription();

        /**
         * <code>string kpi_description = 2;</code>
         * @return The bytes for kpiDescription.
         */
        com.google.protobuf.ByteString getKpiDescriptionBytes();

        /**
         * <code>repeated .monitoring.KpiId kpi_id_list = 3;</code>
         */
        java.util.List<monitoring.Monitoring.KpiId> getKpiIdListList();

        /**
         * <code>repeated .monitoring.KpiId kpi_id_list = 3;</code>
         */
        monitoring.Monitoring.KpiId getKpiIdList(int index);

        /**
         * <code>repeated .monitoring.KpiId kpi_id_list = 3;</code>
         */
        int getKpiIdListCount();

        /**
         * <code>repeated .monitoring.KpiId kpi_id_list = 3;</code>
         */
        java.util.List<? extends monitoring.Monitoring.KpiIdOrBuilder> getKpiIdListOrBuilderList();

        /**
         * <code>repeated .monitoring.KpiId kpi_id_list = 3;</code>
         */
        monitoring.Monitoring.KpiIdOrBuilder getKpiIdListOrBuilder(int index);

        /**
         * <code>.kpi_sample_types.KpiSampleType kpi_sample_type = 4;</code>
         * @return The enum numeric value on the wire for kpiSampleType.
         */
        int getKpiSampleTypeValue();

        /**
         * <code>.kpi_sample_types.KpiSampleType kpi_sample_type = 4;</code>
         * @return The kpiSampleType.
         */
        kpi_sample_types.KpiSampleTypes.KpiSampleType getKpiSampleType();

        /**
         * <code>.context.DeviceId device_id = 5;</code>
         * @return Whether the deviceId field is set.
         */
        boolean hasDeviceId();

        /**
         * <code>.context.DeviceId device_id = 5;</code>
         * @return The deviceId.
         */
        context.ContextOuterClass.DeviceId getDeviceId();

        /**
         * <code>.context.DeviceId device_id = 5;</code>
         */
        context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdOrBuilder();

        /**
         * <code>.context.EndPointId endpoint_id = 6;</code>
         * @return Whether the endpointId field is set.
         */
        boolean hasEndpointId();

        /**
         * <code>.context.EndPointId endpoint_id = 6;</code>
         * @return The endpointId.
         */
        context.ContextOuterClass.EndPointId getEndpointId();

        /**
         * <code>.context.EndPointId endpoint_id = 6;</code>
         */
        context.ContextOuterClass.EndPointIdOrBuilder getEndpointIdOrBuilder();

        /**
         * <code>.context.ServiceId service_id = 7;</code>
         * @return Whether the serviceId field is set.
         */
        boolean hasServiceId();

        /**
         * <code>.context.ServiceId service_id = 7;</code>
         * @return The serviceId.
         */
        context.ContextOuterClass.ServiceId getServiceId();

        /**
         * <code>.context.ServiceId service_id = 7;</code>
         */
        context.ContextOuterClass.ServiceIdOrBuilder getServiceIdOrBuilder();

        /**
         * <code>.context.SliceId slice_id = 8;</code>
         * @return Whether the sliceId field is set.
         */
        boolean hasSliceId();

        /**
         * <code>.context.SliceId slice_id = 8;</code>
         * @return The sliceId.
         */
        context.ContextOuterClass.SliceId getSliceId();

        /**
         * <code>.context.SliceId slice_id = 8;</code>
         */
        context.ContextOuterClass.SliceIdOrBuilder getSliceIdOrBuilder();

        /**
         * <code>.context.ConnectionId connection_id = 9;</code>
         * @return Whether the connectionId field is set.
         */
        boolean hasConnectionId();

        /**
         * <code>.context.ConnectionId connection_id = 9;</code>
         * @return The connectionId.
         */
        context.ContextOuterClass.ConnectionId getConnectionId();

        /**
         * <code>.context.ConnectionId connection_id = 9;</code>
         */
        context.ContextOuterClass.ConnectionIdOrBuilder getConnectionIdOrBuilder();

        /**
         * <code>.context.LinkId link_id = 10;</code>
         * @return Whether the linkId field is set.
         */
        boolean hasLinkId();

        /**
         * <code>.context.LinkId link_id = 10;</code>
         * @return The linkId.
         */
        context.ContextOuterClass.LinkId getLinkId();

        /**
         * <code>.context.LinkId link_id = 10;</code>
         */
        context.ContextOuterClass.LinkIdOrBuilder getLinkIdOrBuilder();
    }

    /**
     * Protobuf type {@code monitoring.KpiDescriptor}
     */
    public static final class KpiDescriptor extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:monitoring.KpiDescriptor)
    KpiDescriptorOrBuilder {

        private static final long serialVersionUID = 0L;

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

        private KpiDescriptor() {
            kpiDescription_ = "";
            kpiIdList_ = java.util.Collections.emptyList();
            kpiSampleType_ = 0;
        }

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

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return monitoring.Monitoring.internal_static_monitoring_KpiDescriptor_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            return monitoring.Monitoring.internal_static_monitoring_KpiDescriptor_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.KpiDescriptor.class, monitoring.Monitoring.KpiDescriptor.Builder.class);
        }

        public static final int KPI_ID_FIELD_NUMBER = 1;

        private monitoring.Monitoring.KpiId kpiId_;

        /**
         * <code>.monitoring.KpiId kpi_id = 1;</code>
         * @return Whether the kpiId field is set.
         */
        @java.lang.Override
        public boolean hasKpiId() {
            return kpiId_ != null;
        }

        /**
         * <code>.monitoring.KpiId kpi_id = 1;</code>
         * @return The kpiId.
         */
        @java.lang.Override
        public monitoring.Monitoring.KpiId getKpiId() {
            return kpiId_ == null ? monitoring.Monitoring.KpiId.getDefaultInstance() : kpiId_;
        }

        /**
         * <code>.monitoring.KpiId kpi_id = 1;</code>
         */
        @java.lang.Override
        public monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder() {
            return kpiId_ == null ? monitoring.Monitoring.KpiId.getDefaultInstance() : kpiId_;
        }

        public static final int KPI_DESCRIPTION_FIELD_NUMBER = 2;

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

        /**
         * <code>string kpi_description = 2;</code>
         * @return The kpiDescription.
         */
        @java.lang.Override
        public java.lang.String getKpiDescription() {
            java.lang.Object ref = kpiDescription_;
            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();
                kpiDescription_ = s;
                return s;
            }
        }

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

        public static final int KPI_ID_LIST_FIELD_NUMBER = 3;

        @SuppressWarnings("serial")
        private java.util.List<monitoring.Monitoring.KpiId> kpiIdList_;

        /**
         * <code>repeated .monitoring.KpiId kpi_id_list = 3;</code>
         */
        @java.lang.Override
        public java.util.List<monitoring.Monitoring.KpiId> getKpiIdListList() {
            return kpiIdList_;
        }

        /**
         * <code>repeated .monitoring.KpiId kpi_id_list = 3;</code>
         */
        @java.lang.Override
        public java.util.List<? extends monitoring.Monitoring.KpiIdOrBuilder> getKpiIdListOrBuilderList() {
            return kpiIdList_;
        }

        /**
         * <code>repeated .monitoring.KpiId kpi_id_list = 3;</code>
         */
        @java.lang.Override
        public int getKpiIdListCount() {
            return kpiIdList_.size();
        }

        /**
         * <code>repeated .monitoring.KpiId kpi_id_list = 3;</code>
         */
        @java.lang.Override
        public monitoring.Monitoring.KpiId getKpiIdList(int index) {
            return kpiIdList_.get(index);
        }

        /**
         * <code>repeated .monitoring.KpiId kpi_id_list = 3;</code>
         */
        @java.lang.Override
        public monitoring.Monitoring.KpiIdOrBuilder getKpiIdListOrBuilder(int index) {
            return kpiIdList_.get(index);
        }

        public static final int KPI_SAMPLE_TYPE_FIELD_NUMBER = 4;

        private int kpiSampleType_ = 0;

        /**
         * <code>.kpi_sample_types.KpiSampleType kpi_sample_type = 4;</code>
         * @return The enum numeric value on the wire for kpiSampleType.
         */
        @java.lang.Override
        public int getKpiSampleTypeValue() {
            return kpiSampleType_;
        }

        /**
         * <code>.kpi_sample_types.KpiSampleType kpi_sample_type = 4;</code>
         * @return The kpiSampleType.
         */
        @java.lang.Override
        public kpi_sample_types.KpiSampleTypes.KpiSampleType getKpiSampleType() {
            kpi_sample_types.KpiSampleTypes.KpiSampleType result = kpi_sample_types.KpiSampleTypes.KpiSampleType.forNumber(kpiSampleType_);
            return result == null ? kpi_sample_types.KpiSampleTypes.KpiSampleType.UNRECOGNIZED : result;
        }

        public static final int DEVICE_ID_FIELD_NUMBER = 5;

        private context.ContextOuterClass.DeviceId deviceId_;

        /**
         * <code>.context.DeviceId device_id = 5;</code>
         * @return Whether the deviceId field is set.
         */
        @java.lang.Override
        public boolean hasDeviceId() {
            return deviceId_ != null;
        }

        /**
         * <code>.context.DeviceId device_id = 5;</code>
         * @return The deviceId.
         */
        @java.lang.Override
        public context.ContextOuterClass.DeviceId getDeviceId() {
            return deviceId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : deviceId_;
        }

        /**
         * <code>.context.DeviceId device_id = 5;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdOrBuilder() {
            return deviceId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : deviceId_;
        }

        public static final int ENDPOINT_ID_FIELD_NUMBER = 6;

        private context.ContextOuterClass.EndPointId endpointId_;

        /**
         * <code>.context.EndPointId endpoint_id = 6;</code>
         * @return Whether the endpointId field is set.
         */
        @java.lang.Override
        public boolean hasEndpointId() {
            return endpointId_ != null;
        }

        /**
         * <code>.context.EndPointId endpoint_id = 6;</code>
         * @return The endpointId.
         */
        @java.lang.Override
        public context.ContextOuterClass.EndPointId getEndpointId() {
            return endpointId_ == null ? context.ContextOuterClass.EndPointId.getDefaultInstance() : endpointId_;
        }

        /**
         * <code>.context.EndPointId endpoint_id = 6;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.EndPointIdOrBuilder getEndpointIdOrBuilder() {
            return endpointId_ == null ? context.ContextOuterClass.EndPointId.getDefaultInstance() : endpointId_;
        }

        public static final int SERVICE_ID_FIELD_NUMBER = 7;

        private context.ContextOuterClass.ServiceId serviceId_;

        /**
         * <code>.context.ServiceId service_id = 7;</code>
         * @return Whether the serviceId field is set.
         */
        @java.lang.Override
        public boolean hasServiceId() {
            return serviceId_ != null;
        }

        /**
         * <code>.context.ServiceId service_id = 7;</code>
         * @return The serviceId.
         */
        @java.lang.Override
        public context.ContextOuterClass.ServiceId getServiceId() {
            return serviceId_ == null ? context.ContextOuterClass.ServiceId.getDefaultInstance() : serviceId_;
        }

        /**
         * <code>.context.ServiceId service_id = 7;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.ServiceIdOrBuilder getServiceIdOrBuilder() {
            return serviceId_ == null ? context.ContextOuterClass.ServiceId.getDefaultInstance() : serviceId_;
        }

        public static final int SLICE_ID_FIELD_NUMBER = 8;

        private context.ContextOuterClass.SliceId sliceId_;

        /**
         * <code>.context.SliceId slice_id = 8;</code>
         * @return Whether the sliceId field is set.
         */
        @java.lang.Override
        public boolean hasSliceId() {
            return sliceId_ != null;
        }

        /**
         * <code>.context.SliceId slice_id = 8;</code>
         * @return The sliceId.
         */
        @java.lang.Override
        public context.ContextOuterClass.SliceId getSliceId() {
            return sliceId_ == null ? context.ContextOuterClass.SliceId.getDefaultInstance() : sliceId_;
        }

        /**
         * <code>.context.SliceId slice_id = 8;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.SliceIdOrBuilder getSliceIdOrBuilder() {
            return sliceId_ == null ? context.ContextOuterClass.SliceId.getDefaultInstance() : sliceId_;
        }

        public static final int CONNECTION_ID_FIELD_NUMBER = 9;

        private context.ContextOuterClass.ConnectionId connectionId_;

        /**
         * <code>.context.ConnectionId connection_id = 9;</code>
         * @return Whether the connectionId field is set.
         */
        @java.lang.Override
        public boolean hasConnectionId() {
            return connectionId_ != null;
        }

        /**
         * <code>.context.ConnectionId connection_id = 9;</code>
         * @return The connectionId.
         */
        @java.lang.Override
        public context.ContextOuterClass.ConnectionId getConnectionId() {
            return connectionId_ == null ? context.ContextOuterClass.ConnectionId.getDefaultInstance() : connectionId_;
        }

        /**
         * <code>.context.ConnectionId connection_id = 9;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.ConnectionIdOrBuilder getConnectionIdOrBuilder() {
            return connectionId_ == null ? context.ContextOuterClass.ConnectionId.getDefaultInstance() : connectionId_;
        }

        public static final int LINK_ID_FIELD_NUMBER = 10;

        private context.ContextOuterClass.LinkId linkId_;

        /**
         * <code>.context.LinkId link_id = 10;</code>
         * @return Whether the linkId field is set.
         */
        @java.lang.Override
        public boolean hasLinkId() {
            return linkId_ != null;
        }

        /**
         * <code>.context.LinkId link_id = 10;</code>
         * @return The linkId.
         */
        @java.lang.Override
        public context.ContextOuterClass.LinkId getLinkId() {
            return linkId_ == null ? context.ContextOuterClass.LinkId.getDefaultInstance() : linkId_;
        }

        /**
         * <code>.context.LinkId link_id = 10;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.LinkIdOrBuilder getLinkIdOrBuilder() {
            return linkId_ == null ? context.ContextOuterClass.LinkId.getDefaultInstance() : linkId_;
        }

        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 (kpiId_ != null) {
                output.writeMessage(1, getKpiId());
            }
            if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(kpiDescription_)) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 2, kpiDescription_);
            }
            for (int i = 0; i < kpiIdList_.size(); i++) {
                output.writeMessage(3, kpiIdList_.get(i));
            }
            if (kpiSampleType_ != kpi_sample_types.KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_UNKNOWN.getNumber()) {
                output.writeEnum(4, kpiSampleType_);
            }
            if (deviceId_ != null) {
                output.writeMessage(5, getDeviceId());
            }
            if (endpointId_ != null) {
                output.writeMessage(6, getEndpointId());
            }
            if (serviceId_ != null) {
                output.writeMessage(7, getServiceId());
            }
            if (sliceId_ != null) {
                output.writeMessage(8, getSliceId());
            }
            if (connectionId_ != null) {
                output.writeMessage(9, getConnectionId());
            }
            if (linkId_ != null) {
                output.writeMessage(10, getLinkId());
            }
            getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;
            size = 0;
            if (kpiId_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getKpiId());
            }
            if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(kpiDescription_)) {
                size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, kpiDescription_);
            }
            for (int i = 0; i < kpiIdList_.size(); i++) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, kpiIdList_.get(i));
            }
            if (kpiSampleType_ != kpi_sample_types.KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_UNKNOWN.getNumber()) {
                size += com.google.protobuf.CodedOutputStream.computeEnumSize(4, kpiSampleType_);
            }
            if (deviceId_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getDeviceId());
            }
            if (endpointId_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, getEndpointId());
            }
            if (serviceId_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(7, getServiceId());
            }
            if (sliceId_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(8, getSliceId());
            }
            if (connectionId_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(9, getConnectionId());
            }
            if (linkId_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(10, getLinkId());
            }
            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 monitoring.Monitoring.KpiDescriptor)) {
                return super.equals(obj);
            }
            monitoring.Monitoring.KpiDescriptor other = (monitoring.Monitoring.KpiDescriptor) obj;
            if (hasKpiId() != other.hasKpiId())
                return false;
            if (hasKpiId()) {
                if (!getKpiId().equals(other.getKpiId()))
                    return false;
            }
            if (!getKpiDescription().equals(other.getKpiDescription()))
                return false;
            if (!getKpiIdListList().equals(other.getKpiIdListList()))
                return false;
            if (kpiSampleType_ != other.kpiSampleType_)
                return false;
            if (hasDeviceId() != other.hasDeviceId())
                return false;
            if (hasDeviceId()) {
                if (!getDeviceId().equals(other.getDeviceId()))
                    return false;
            }
            if (hasEndpointId() != other.hasEndpointId())
                return false;
            if (hasEndpointId()) {
                if (!getEndpointId().equals(other.getEndpointId()))
                    return false;
            }
            if (hasServiceId() != other.hasServiceId())
                return false;
            if (hasServiceId()) {
                if (!getServiceId().equals(other.getServiceId()))
                    return false;
            }
            if (hasSliceId() != other.hasSliceId())
                return false;
            if (hasSliceId()) {
                if (!getSliceId().equals(other.getSliceId()))
                    return false;
            }
            if (hasConnectionId() != other.hasConnectionId())
                return false;
            if (hasConnectionId()) {
                if (!getConnectionId().equals(other.getConnectionId()))
                    return false;
            }
            if (hasLinkId() != other.hasLinkId())
                return false;
            if (hasLinkId()) {
                if (!getLinkId().equals(other.getLinkId()))
                    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();
            if (hasKpiId()) {
                hash = (37 * hash) + KPI_ID_FIELD_NUMBER;
                hash = (53 * hash) + getKpiId().hashCode();
            }
            hash = (37 * hash) + KPI_DESCRIPTION_FIELD_NUMBER;
            hash = (53 * hash) + getKpiDescription().hashCode();
            if (getKpiIdListCount() > 0) {
                hash = (37 * hash) + KPI_ID_LIST_FIELD_NUMBER;
                hash = (53 * hash) + getKpiIdListList().hashCode();
            }
            hash = (37 * hash) + KPI_SAMPLE_TYPE_FIELD_NUMBER;
            hash = (53 * hash) + kpiSampleType_;
            if (hasDeviceId()) {
                hash = (37 * hash) + DEVICE_ID_FIELD_NUMBER;
                hash = (53 * hash) + getDeviceId().hashCode();
            }
            if (hasEndpointId()) {
                hash = (37 * hash) + ENDPOINT_ID_FIELD_NUMBER;
                hash = (53 * hash) + getEndpointId().hashCode();
            }
            if (hasServiceId()) {
                hash = (37 * hash) + SERVICE_ID_FIELD_NUMBER;
                hash = (53 * hash) + getServiceId().hashCode();
            }
            if (hasSliceId()) {
                hash = (37 * hash) + SLICE_ID_FIELD_NUMBER;
                hash = (53 * hash) + getSliceId().hashCode();
            }
            if (hasConnectionId()) {
                hash = (37 * hash) + CONNECTION_ID_FIELD_NUMBER;
                hash = (53 * hash) + getConnectionId().hashCode();
            }
            if (hasLinkId()) {
                hash = (37 * hash) + LINK_ID_FIELD_NUMBER;
                hash = (53 * hash) + getLinkId().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static monitoring.Monitoring.KpiDescriptor parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.KpiDescriptor parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.KpiDescriptor parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.KpiDescriptor parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.KpiDescriptor parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.KpiDescriptor parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.KpiDescriptor parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.KpiDescriptor 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 monitoring.Monitoring.KpiDescriptor parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.KpiDescriptor 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 monitoring.Monitoring.KpiDescriptor parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.KpiDescriptor 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(monitoring.Monitoring.KpiDescriptor 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;
        }

        /**
         * Protobuf type {@code monitoring.KpiDescriptor}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:monitoring.KpiDescriptor)
        monitoring.Monitoring.KpiDescriptorOrBuilder {

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return monitoring.Monitoring.internal_static_monitoring_KpiDescriptor_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
                return monitoring.Monitoring.internal_static_monitoring_KpiDescriptor_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.KpiDescriptor.class, monitoring.Monitoring.KpiDescriptor.Builder.class);
            }

            // Construct using monitoring.Monitoring.KpiDescriptor.newBuilder()
            private Builder() {
            }

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

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                kpiId_ = null;
                if (kpiIdBuilder_ != null) {
                    kpiIdBuilder_.dispose();
                    kpiIdBuilder_ = null;
                }
                kpiDescription_ = "";
                if (kpiIdListBuilder_ == null) {
                    kpiIdList_ = java.util.Collections.emptyList();
                } else {
                    kpiIdList_ = null;
                    kpiIdListBuilder_.clear();
                }
                bitField0_ = (bitField0_ & ~0x00000004);
                kpiSampleType_ = 0;
                deviceId_ = null;
                if (deviceIdBuilder_ != null) {
                    deviceIdBuilder_.dispose();
                    deviceIdBuilder_ = null;
                }
                endpointId_ = null;
                if (endpointIdBuilder_ != null) {
                    endpointIdBuilder_.dispose();
                    endpointIdBuilder_ = null;
                }
                serviceId_ = null;
                if (serviceIdBuilder_ != null) {
                    serviceIdBuilder_.dispose();
                    serviceIdBuilder_ = null;
                }
                sliceId_ = null;
                if (sliceIdBuilder_ != null) {
                    sliceIdBuilder_.dispose();
                    sliceIdBuilder_ = null;
                }
                connectionId_ = null;
                if (connectionIdBuilder_ != null) {
                    connectionIdBuilder_.dispose();
                    connectionIdBuilder_ = null;
                }
                linkId_ = null;
                if (linkIdBuilder_ != null) {
                    linkIdBuilder_.dispose();
                    linkIdBuilder_ = null;
                }
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return monitoring.Monitoring.internal_static_monitoring_KpiDescriptor_descriptor;
            }

            @java.lang.Override
            public monitoring.Monitoring.KpiDescriptor getDefaultInstanceForType() {
                return monitoring.Monitoring.KpiDescriptor.getDefaultInstance();
            }

            @java.lang.Override
            public monitoring.Monitoring.KpiDescriptor build() {
                monitoring.Monitoring.KpiDescriptor result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

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

            private void buildPartialRepeatedFields(monitoring.Monitoring.KpiDescriptor result) {
                if (kpiIdListBuilder_ == null) {
                    if (((bitField0_ & 0x00000004) != 0)) {
                        kpiIdList_ = java.util.Collections.unmodifiableList(kpiIdList_);
                        bitField0_ = (bitField0_ & ~0x00000004);
                    }
                    result.kpiIdList_ = kpiIdList_;
                } else {
                    result.kpiIdList_ = kpiIdListBuilder_.build();
                }
            }

            private void buildPartial0(monitoring.Monitoring.KpiDescriptor result) {
                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    result.kpiId_ = kpiIdBuilder_ == null ? kpiId_ : kpiIdBuilder_.build();
                }
                if (((from_bitField0_ & 0x00000002) != 0)) {
                    result.kpiDescription_ = kpiDescription_;
                }
                if (((from_bitField0_ & 0x00000008) != 0)) {
                    result.kpiSampleType_ = kpiSampleType_;
                }
                if (((from_bitField0_ & 0x00000010) != 0)) {
                    result.deviceId_ = deviceIdBuilder_ == null ? deviceId_ : deviceIdBuilder_.build();
                }
                if (((from_bitField0_ & 0x00000020) != 0)) {
                    result.endpointId_ = endpointIdBuilder_ == null ? endpointId_ : endpointIdBuilder_.build();
                }
                if (((from_bitField0_ & 0x00000040) != 0)) {
                    result.serviceId_ = serviceIdBuilder_ == null ? serviceId_ : serviceIdBuilder_.build();
                }
                if (((from_bitField0_ & 0x00000080) != 0)) {
                    result.sliceId_ = sliceIdBuilder_ == null ? sliceId_ : sliceIdBuilder_.build();
                }
                if (((from_bitField0_ & 0x00000100) != 0)) {
                    result.connectionId_ = connectionIdBuilder_ == null ? connectionId_ : connectionIdBuilder_.build();
                }
                if (((from_bitField0_ & 0x00000200) != 0)) {
                    result.linkId_ = linkIdBuilder_ == null ? linkId_ : linkIdBuilder_.build();
                }
            }

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

            public Builder mergeFrom(monitoring.Monitoring.KpiDescriptor other) {
                if (other == monitoring.Monitoring.KpiDescriptor.getDefaultInstance())
                    return this;
                if (other.hasKpiId()) {
                    mergeKpiId(other.getKpiId());
                }
                if (!other.getKpiDescription().isEmpty()) {
                    kpiDescription_ = other.kpiDescription_;
                    bitField0_ |= 0x00000002;
                    onChanged();
                }
                if (kpiIdListBuilder_ == null) {
                    if (!other.kpiIdList_.isEmpty()) {
                        if (kpiIdList_.isEmpty()) {
                            kpiIdList_ = other.kpiIdList_;
                            bitField0_ = (bitField0_ & ~0x00000004);
                        } else {
                            ensureKpiIdListIsMutable();
                            kpiIdList_.addAll(other.kpiIdList_);
                        }
                        onChanged();
                    }
                } else {
                    if (!other.kpiIdList_.isEmpty()) {
                        if (kpiIdListBuilder_.isEmpty()) {
                            kpiIdListBuilder_.dispose();
                            kpiIdListBuilder_ = null;
                            kpiIdList_ = other.kpiIdList_;
                            bitField0_ = (bitField0_ & ~0x00000004);
                            kpiIdListBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getKpiIdListFieldBuilder() : null;
                        } else {
                            kpiIdListBuilder_.addAllMessages(other.kpiIdList_);
                        }
                    }
                }
                if (other.kpiSampleType_ != 0) {
                    setKpiSampleTypeValue(other.getKpiSampleTypeValue());
                }
                if (other.hasDeviceId()) {
                    mergeDeviceId(other.getDeviceId());
                }
                if (other.hasEndpointId()) {
                    mergeEndpointId(other.getEndpointId());
                }
                if (other.hasServiceId()) {
                    mergeServiceId(other.getServiceId());
                }
                if (other.hasSliceId()) {
                    mergeSliceId(other.getSliceId());
                }
                if (other.hasConnectionId()) {
                    mergeConnectionId(other.getConnectionId());
                }
                if (other.hasLinkId()) {
                    mergeLinkId(other.getLinkId());
                }
                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:
                                {
                                    input.readMessage(getKpiIdFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000001;
                                    break;
                                }
                            // case 10
                            case 18:
                                {
                                    kpiDescription_ = input.readStringRequireUtf8();
                                    bitField0_ |= 0x00000002;
                                    break;
                                }
                            // case 18
                            case 26:
                                {
                                    monitoring.Monitoring.KpiId m = input.readMessage(monitoring.Monitoring.KpiId.parser(), extensionRegistry);
                                    if (kpiIdListBuilder_ == null) {
                                        ensureKpiIdListIsMutable();
                                        kpiIdList_.add(m);
                                    } else {
                                        kpiIdListBuilder_.addMessage(m);
                                    }
                                    break;
                                }
                            // case 26
                            case 32:
                                {
                                    kpiSampleType_ = input.readEnum();
                                    bitField0_ |= 0x00000008;
                                    break;
                                }
                            // case 32
                            case 42:
                                {
                                    input.readMessage(getDeviceIdFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000010;
                                    break;
                                }
                            // case 42
                            case 50:
                                {
                                    input.readMessage(getEndpointIdFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000020;
                                    break;
                                }
                            // case 50
                            case 58:
                                {
                                    input.readMessage(getServiceIdFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000040;
                                    break;
                                }
                            // case 58
                            case 66:
                                {
                                    input.readMessage(getSliceIdFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000080;
                                    break;
                                }
                            // case 66
                            case 74:
                                {
                                    input.readMessage(getConnectionIdFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000100;
                                    break;
                                }
                            // case 74
                            case 82:
                                {
                                    input.readMessage(getLinkIdFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000200;
                                    break;
                                }
                            // case 82
                            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 monitoring.Monitoring.KpiId kpiId_;

            private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder> kpiIdBuilder_;

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             * @return Whether the kpiId field is set.
             */
            public boolean hasKpiId() {
                return ((bitField0_ & 0x00000001) != 0);
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             * @return The kpiId.
             */
            public monitoring.Monitoring.KpiId getKpiId() {
                if (kpiIdBuilder_ == null) {
                    return kpiId_ == null ? monitoring.Monitoring.KpiId.getDefaultInstance() : kpiId_;
                } else {
                    return kpiIdBuilder_.getMessage();
                }
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             */
            public Builder setKpiId(monitoring.Monitoring.KpiId value) {
                if (kpiIdBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    kpiId_ = value;
                } else {
                    kpiIdBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             */
            public Builder setKpiId(monitoring.Monitoring.KpiId.Builder builderForValue) {
                if (kpiIdBuilder_ == null) {
                    kpiId_ = builderForValue.build();
                } else {
                    kpiIdBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             */
            public Builder mergeKpiId(monitoring.Monitoring.KpiId value) {
                if (kpiIdBuilder_ == null) {
                    if (((bitField0_ & 0x00000001) != 0) && kpiId_ != null && kpiId_ != monitoring.Monitoring.KpiId.getDefaultInstance()) {
                        getKpiIdBuilder().mergeFrom(value);
                    } else {
                        kpiId_ = value;
                    }
                } else {
                    kpiIdBuilder_.mergeFrom(value);
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             */
            public Builder clearKpiId() {
                bitField0_ = (bitField0_ & ~0x00000001);
                kpiId_ = null;
                if (kpiIdBuilder_ != null) {
                    kpiIdBuilder_.dispose();
                    kpiIdBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             */
            public monitoring.Monitoring.KpiId.Builder getKpiIdBuilder() {
                bitField0_ |= 0x00000001;
                onChanged();
                return getKpiIdFieldBuilder().getBuilder();
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             */
            public monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder() {
                if (kpiIdBuilder_ != null) {
                    return kpiIdBuilder_.getMessageOrBuilder();
                } else {
                    return kpiId_ == null ? monitoring.Monitoring.KpiId.getDefaultInstance() : kpiId_;
                }
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder> getKpiIdFieldBuilder() {
                if (kpiIdBuilder_ == null) {
                    kpiIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder>(getKpiId(), getParentForChildren(), isClean());
                    kpiId_ = null;
                }
                return kpiIdBuilder_;
            }

            private java.lang.Object kpiDescription_ = "";

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

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

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

            /**
             * <code>string kpi_description = 2;</code>
             * @return This builder for chaining.
             */
            public Builder clearKpiDescription() {
                kpiDescription_ = getDefaultInstance().getKpiDescription();
                bitField0_ = (bitField0_ & ~0x00000002);
                onChanged();
                return this;
            }

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

            private java.util.List<monitoring.Monitoring.KpiId> kpiIdList_ = java.util.Collections.emptyList();

            private void ensureKpiIdListIsMutable() {
                if (!((bitField0_ & 0x00000004) != 0)) {
                    kpiIdList_ = new java.util.ArrayList<monitoring.Monitoring.KpiId>(kpiIdList_);
                    bitField0_ |= 0x00000004;
                }
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder> kpiIdListBuilder_;

            /**
             * <code>repeated .monitoring.KpiId kpi_id_list = 3;</code>
             */
            public java.util.List<monitoring.Monitoring.KpiId> getKpiIdListList() {
                if (kpiIdListBuilder_ == null) {
                    return java.util.Collections.unmodifiableList(kpiIdList_);
                } else {
                    return kpiIdListBuilder_.getMessageList();
                }
            }

            /**
             * <code>repeated .monitoring.KpiId kpi_id_list = 3;</code>
             */
            public int getKpiIdListCount() {
                if (kpiIdListBuilder_ == null) {
                    return kpiIdList_.size();
                } else {
                    return kpiIdListBuilder_.getCount();
                }
            }

            /**
             * <code>repeated .monitoring.KpiId kpi_id_list = 3;</code>
             */
            public monitoring.Monitoring.KpiId getKpiIdList(int index) {
                if (kpiIdListBuilder_ == null) {
                    return kpiIdList_.get(index);
                } else {
                    return kpiIdListBuilder_.getMessage(index);
                }
            }

            /**
             * <code>repeated .monitoring.KpiId kpi_id_list = 3;</code>
             */
            public Builder setKpiIdList(int index, monitoring.Monitoring.KpiId value) {
                if (kpiIdListBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureKpiIdListIsMutable();
                    kpiIdList_.set(index, value);
                    onChanged();
                } else {
                    kpiIdListBuilder_.setMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.KpiId kpi_id_list = 3;</code>
             */
            public Builder setKpiIdList(int index, monitoring.Monitoring.KpiId.Builder builderForValue) {
                if (kpiIdListBuilder_ == null) {
                    ensureKpiIdListIsMutable();
                    kpiIdList_.set(index, builderForValue.build());
                    onChanged();
                } else {
                    kpiIdListBuilder_.setMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.KpiId kpi_id_list = 3;</code>
             */
            public Builder addKpiIdList(monitoring.Monitoring.KpiId value) {
                if (kpiIdListBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureKpiIdListIsMutable();
                    kpiIdList_.add(value);
                    onChanged();
                } else {
                    kpiIdListBuilder_.addMessage(value);
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.KpiId kpi_id_list = 3;</code>
             */
            public Builder addKpiIdList(int index, monitoring.Monitoring.KpiId value) {
                if (kpiIdListBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureKpiIdListIsMutable();
                    kpiIdList_.add(index, value);
                    onChanged();
                } else {
                    kpiIdListBuilder_.addMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.KpiId kpi_id_list = 3;</code>
             */
            public Builder addKpiIdList(monitoring.Monitoring.KpiId.Builder builderForValue) {
                if (kpiIdListBuilder_ == null) {
                    ensureKpiIdListIsMutable();
                    kpiIdList_.add(builderForValue.build());
                    onChanged();
                } else {
                    kpiIdListBuilder_.addMessage(builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.KpiId kpi_id_list = 3;</code>
             */
            public Builder addKpiIdList(int index, monitoring.Monitoring.KpiId.Builder builderForValue) {
                if (kpiIdListBuilder_ == null) {
                    ensureKpiIdListIsMutable();
                    kpiIdList_.add(index, builderForValue.build());
                    onChanged();
                } else {
                    kpiIdListBuilder_.addMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.KpiId kpi_id_list = 3;</code>
             */
            public Builder addAllKpiIdList(java.lang.Iterable<? extends monitoring.Monitoring.KpiId> values) {
                if (kpiIdListBuilder_ == null) {
                    ensureKpiIdListIsMutable();
                    com.google.protobuf.AbstractMessageLite.Builder.addAll(values, kpiIdList_);
                    onChanged();
                } else {
                    kpiIdListBuilder_.addAllMessages(values);
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.KpiId kpi_id_list = 3;</code>
             */
            public Builder clearKpiIdList() {
                if (kpiIdListBuilder_ == null) {
                    kpiIdList_ = java.util.Collections.emptyList();
                    bitField0_ = (bitField0_ & ~0x00000004);
                    onChanged();
                } else {
                    kpiIdListBuilder_.clear();
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.KpiId kpi_id_list = 3;</code>
             */
            public Builder removeKpiIdList(int index) {
                if (kpiIdListBuilder_ == null) {
                    ensureKpiIdListIsMutable();
                    kpiIdList_.remove(index);
                    onChanged();
                } else {
                    kpiIdListBuilder_.remove(index);
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.KpiId kpi_id_list = 3;</code>
             */
            public monitoring.Monitoring.KpiId.Builder getKpiIdListBuilder(int index) {
                return getKpiIdListFieldBuilder().getBuilder(index);
            }

            /**
             * <code>repeated .monitoring.KpiId kpi_id_list = 3;</code>
             */
            public monitoring.Monitoring.KpiIdOrBuilder getKpiIdListOrBuilder(int index) {
                if (kpiIdListBuilder_ == null) {
                    return kpiIdList_.get(index);
                } else {
                    return kpiIdListBuilder_.getMessageOrBuilder(index);
                }
            }

            /**
             * <code>repeated .monitoring.KpiId kpi_id_list = 3;</code>
             */
            public java.util.List<? extends monitoring.Monitoring.KpiIdOrBuilder> getKpiIdListOrBuilderList() {
                if (kpiIdListBuilder_ != null) {
                    return kpiIdListBuilder_.getMessageOrBuilderList();
                } else {
                    return java.util.Collections.unmodifiableList(kpiIdList_);
                }
            }

            /**
             * <code>repeated .monitoring.KpiId kpi_id_list = 3;</code>
             */
            public monitoring.Monitoring.KpiId.Builder addKpiIdListBuilder() {
                return getKpiIdListFieldBuilder().addBuilder(monitoring.Monitoring.KpiId.getDefaultInstance());
            }

            /**
             * <code>repeated .monitoring.KpiId kpi_id_list = 3;</code>
             */
            public monitoring.Monitoring.KpiId.Builder addKpiIdListBuilder(int index) {
                return getKpiIdListFieldBuilder().addBuilder(index, monitoring.Monitoring.KpiId.getDefaultInstance());
            }

            /**
             * <code>repeated .monitoring.KpiId kpi_id_list = 3;</code>
             */
            public java.util.List<monitoring.Monitoring.KpiId.Builder> getKpiIdListBuilderList() {
                return getKpiIdListFieldBuilder().getBuilderList();
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder> getKpiIdListFieldBuilder() {
                if (kpiIdListBuilder_ == null) {
                    kpiIdListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder>(kpiIdList_, ((bitField0_ & 0x00000004) != 0), getParentForChildren(), isClean());
                    kpiIdList_ = null;
                }
                return kpiIdListBuilder_;
            }

            private int kpiSampleType_ = 0;

            /**
             * <code>.kpi_sample_types.KpiSampleType kpi_sample_type = 4;</code>
             * @return The enum numeric value on the wire for kpiSampleType.
             */
            @java.lang.Override
            public int getKpiSampleTypeValue() {
                return kpiSampleType_;
            }

            /**
             * <code>.kpi_sample_types.KpiSampleType kpi_sample_type = 4;</code>
             * @param value The enum numeric value on the wire for kpiSampleType to set.
             * @return This builder for chaining.
             */
            public Builder setKpiSampleTypeValue(int value) {
                kpiSampleType_ = value;
                bitField0_ |= 0x00000008;
                onChanged();
                return this;
            }

            /**
             * <code>.kpi_sample_types.KpiSampleType kpi_sample_type = 4;</code>
             * @return The kpiSampleType.
             */
            @java.lang.Override
            public kpi_sample_types.KpiSampleTypes.KpiSampleType getKpiSampleType() {
                kpi_sample_types.KpiSampleTypes.KpiSampleType result = kpi_sample_types.KpiSampleTypes.KpiSampleType.forNumber(kpiSampleType_);
                return result == null ? kpi_sample_types.KpiSampleTypes.KpiSampleType.UNRECOGNIZED : result;
            }

            /**
             * <code>.kpi_sample_types.KpiSampleType kpi_sample_type = 4;</code>
             * @param value The kpiSampleType to set.
             * @return This builder for chaining.
             */
            public Builder setKpiSampleType(kpi_sample_types.KpiSampleTypes.KpiSampleType value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                bitField0_ |= 0x00000008;
                kpiSampleType_ = value.getNumber();
                onChanged();
                return this;
            }

            /**
             * <code>.kpi_sample_types.KpiSampleType kpi_sample_type = 4;</code>
             * @return This builder for chaining.
             */
            public Builder clearKpiSampleType() {
                bitField0_ = (bitField0_ & ~0x00000008);
                kpiSampleType_ = 0;
                onChanged();
                return this;
            }

            private context.ContextOuterClass.DeviceId deviceId_;

            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.DeviceId, context.ContextOuterClass.DeviceId.Builder, context.ContextOuterClass.DeviceIdOrBuilder> deviceIdBuilder_;

            /**
             * <code>.context.DeviceId device_id = 5;</code>
             * @return Whether the deviceId field is set.
             */
            public boolean hasDeviceId() {
                return ((bitField0_ & 0x00000010) != 0);
            }

            /**
             * <code>.context.DeviceId device_id = 5;</code>
             * @return The deviceId.
             */
            public context.ContextOuterClass.DeviceId getDeviceId() {
                if (deviceIdBuilder_ == null) {
                    return deviceId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : deviceId_;
                } else {
                    return deviceIdBuilder_.getMessage();
                }
            }

            /**
             * <code>.context.DeviceId device_id = 5;</code>
             */
            public Builder setDeviceId(context.ContextOuterClass.DeviceId value) {
                if (deviceIdBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    deviceId_ = value;
                } else {
                    deviceIdBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000010;
                onChanged();
                return this;
            }

            /**
             * <code>.context.DeviceId device_id = 5;</code>
             */
            public Builder setDeviceId(context.ContextOuterClass.DeviceId.Builder builderForValue) {
                if (deviceIdBuilder_ == null) {
                    deviceId_ = builderForValue.build();
                } else {
                    deviceIdBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000010;
                onChanged();
                return this;
            }

            /**
             * <code>.context.DeviceId device_id = 5;</code>
             */
            public Builder mergeDeviceId(context.ContextOuterClass.DeviceId value) {
                if (deviceIdBuilder_ == null) {
                    if (((bitField0_ & 0x00000010) != 0) && deviceId_ != null && deviceId_ != context.ContextOuterClass.DeviceId.getDefaultInstance()) {
                        getDeviceIdBuilder().mergeFrom(value);
                    } else {
                        deviceId_ = value;
                    }
                } else {
                    deviceIdBuilder_.mergeFrom(value);
                }
                bitField0_ |= 0x00000010;
                onChanged();
                return this;
            }

            /**
             * <code>.context.DeviceId device_id = 5;</code>
             */
            public Builder clearDeviceId() {
                bitField0_ = (bitField0_ & ~0x00000010);
                deviceId_ = null;
                if (deviceIdBuilder_ != null) {
                    deviceIdBuilder_.dispose();
                    deviceIdBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <code>.context.DeviceId device_id = 5;</code>
             */
            public context.ContextOuterClass.DeviceId.Builder getDeviceIdBuilder() {
                bitField0_ |= 0x00000010;
                onChanged();
                return getDeviceIdFieldBuilder().getBuilder();
            }

            /**
             * <code>.context.DeviceId device_id = 5;</code>
             */
            public context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdOrBuilder() {
                if (deviceIdBuilder_ != null) {
                    return deviceIdBuilder_.getMessageOrBuilder();
                } else {
                    return deviceId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : deviceId_;
                }
            }

            /**
             * <code>.context.DeviceId device_id = 5;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.DeviceId, context.ContextOuterClass.DeviceId.Builder, context.ContextOuterClass.DeviceIdOrBuilder> getDeviceIdFieldBuilder() {
                if (deviceIdBuilder_ == null) {
                    deviceIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.DeviceId, context.ContextOuterClass.DeviceId.Builder, context.ContextOuterClass.DeviceIdOrBuilder>(getDeviceId(), getParentForChildren(), isClean());
                    deviceId_ = null;
                }
                return deviceIdBuilder_;
            }

            private context.ContextOuterClass.EndPointId endpointId_;

            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.EndPointId, context.ContextOuterClass.EndPointId.Builder, context.ContextOuterClass.EndPointIdOrBuilder> endpointIdBuilder_;

            /**
             * <code>.context.EndPointId endpoint_id = 6;</code>
             * @return Whether the endpointId field is set.
             */
            public boolean hasEndpointId() {
                return ((bitField0_ & 0x00000020) != 0);
            }

            /**
             * <code>.context.EndPointId endpoint_id = 6;</code>
             * @return The endpointId.
             */
            public context.ContextOuterClass.EndPointId getEndpointId() {
                if (endpointIdBuilder_ == null) {
                    return endpointId_ == null ? context.ContextOuterClass.EndPointId.getDefaultInstance() : endpointId_;
                } else {
                    return endpointIdBuilder_.getMessage();
                }
            }

            /**
             * <code>.context.EndPointId endpoint_id = 6;</code>
             */
            public Builder setEndpointId(context.ContextOuterClass.EndPointId value) {
                if (endpointIdBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    endpointId_ = value;
                } else {
                    endpointIdBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000020;
                onChanged();
                return this;
            }

            /**
             * <code>.context.EndPointId endpoint_id = 6;</code>
             */
            public Builder setEndpointId(context.ContextOuterClass.EndPointId.Builder builderForValue) {
                if (endpointIdBuilder_ == null) {
                    endpointId_ = builderForValue.build();
                } else {
                    endpointIdBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000020;
                onChanged();
                return this;
            }

            /**
             * <code>.context.EndPointId endpoint_id = 6;</code>
             */
            public Builder mergeEndpointId(context.ContextOuterClass.EndPointId value) {
                if (endpointIdBuilder_ == null) {
                    if (((bitField0_ & 0x00000020) != 0) && endpointId_ != null && endpointId_ != context.ContextOuterClass.EndPointId.getDefaultInstance()) {
                        getEndpointIdBuilder().mergeFrom(value);
                    } else {
                        endpointId_ = value;
                    }
                } else {
                    endpointIdBuilder_.mergeFrom(value);
                }
                bitField0_ |= 0x00000020;
                onChanged();
                return this;
            }

            /**
             * <code>.context.EndPointId endpoint_id = 6;</code>
             */
            public Builder clearEndpointId() {
                bitField0_ = (bitField0_ & ~0x00000020);
                endpointId_ = null;
                if (endpointIdBuilder_ != null) {
                    endpointIdBuilder_.dispose();
                    endpointIdBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <code>.context.EndPointId endpoint_id = 6;</code>
             */
            public context.ContextOuterClass.EndPointId.Builder getEndpointIdBuilder() {
                bitField0_ |= 0x00000020;
                onChanged();
                return getEndpointIdFieldBuilder().getBuilder();
            }

            /**
             * <code>.context.EndPointId endpoint_id = 6;</code>
             */
            public context.ContextOuterClass.EndPointIdOrBuilder getEndpointIdOrBuilder() {
                if (endpointIdBuilder_ != null) {
                    return endpointIdBuilder_.getMessageOrBuilder();
                } else {
                    return endpointId_ == null ? context.ContextOuterClass.EndPointId.getDefaultInstance() : endpointId_;
                }
            }

            /**
             * <code>.context.EndPointId endpoint_id = 6;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.EndPointId, context.ContextOuterClass.EndPointId.Builder, context.ContextOuterClass.EndPointIdOrBuilder> getEndpointIdFieldBuilder() {
                if (endpointIdBuilder_ == null) {
                    endpointIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.EndPointId, context.ContextOuterClass.EndPointId.Builder, context.ContextOuterClass.EndPointIdOrBuilder>(getEndpointId(), getParentForChildren(), isClean());
                    endpointId_ = null;
                }
                return endpointIdBuilder_;
            }

            private context.ContextOuterClass.ServiceId serviceId_;

            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ServiceId, context.ContextOuterClass.ServiceId.Builder, context.ContextOuterClass.ServiceIdOrBuilder> serviceIdBuilder_;

            /**
             * <code>.context.ServiceId service_id = 7;</code>
             * @return Whether the serviceId field is set.
             */
            public boolean hasServiceId() {
                return ((bitField0_ & 0x00000040) != 0);
            }

            /**
             * <code>.context.ServiceId service_id = 7;</code>
             * @return The serviceId.
             */
            public context.ContextOuterClass.ServiceId getServiceId() {
                if (serviceIdBuilder_ == null) {
                    return serviceId_ == null ? context.ContextOuterClass.ServiceId.getDefaultInstance() : serviceId_;
                } else {
                    return serviceIdBuilder_.getMessage();
                }
            }

            /**
             * <code>.context.ServiceId service_id = 7;</code>
             */
            public Builder setServiceId(context.ContextOuterClass.ServiceId value) {
                if (serviceIdBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    serviceId_ = value;
                } else {
                    serviceIdBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000040;
                onChanged();
                return this;
            }

            /**
             * <code>.context.ServiceId service_id = 7;</code>
             */
            public Builder setServiceId(context.ContextOuterClass.ServiceId.Builder builderForValue) {
                if (serviceIdBuilder_ == null) {
                    serviceId_ = builderForValue.build();
                } else {
                    serviceIdBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000040;
                onChanged();
                return this;
            }

            /**
             * <code>.context.ServiceId service_id = 7;</code>
             */
            public Builder mergeServiceId(context.ContextOuterClass.ServiceId value) {
                if (serviceIdBuilder_ == null) {
                    if (((bitField0_ & 0x00000040) != 0) && serviceId_ != null && serviceId_ != context.ContextOuterClass.ServiceId.getDefaultInstance()) {
                        getServiceIdBuilder().mergeFrom(value);
                    } else {
                        serviceId_ = value;
                    }
                } else {
                    serviceIdBuilder_.mergeFrom(value);
                }
                bitField0_ |= 0x00000040;
                onChanged();
                return this;
            }

            /**
             * <code>.context.ServiceId service_id = 7;</code>
             */
            public Builder clearServiceId() {
                bitField0_ = (bitField0_ & ~0x00000040);
                serviceId_ = null;
                if (serviceIdBuilder_ != null) {
                    serviceIdBuilder_.dispose();
                    serviceIdBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <code>.context.ServiceId service_id = 7;</code>
             */
            public context.ContextOuterClass.ServiceId.Builder getServiceIdBuilder() {
                bitField0_ |= 0x00000040;
                onChanged();
                return getServiceIdFieldBuilder().getBuilder();
            }

            /**
             * <code>.context.ServiceId service_id = 7;</code>
             */
            public context.ContextOuterClass.ServiceIdOrBuilder getServiceIdOrBuilder() {
                if (serviceIdBuilder_ != null) {
                    return serviceIdBuilder_.getMessageOrBuilder();
                } else {
                    return serviceId_ == null ? context.ContextOuterClass.ServiceId.getDefaultInstance() : serviceId_;
                }
            }

            /**
             * <code>.context.ServiceId service_id = 7;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ServiceId, context.ContextOuterClass.ServiceId.Builder, context.ContextOuterClass.ServiceIdOrBuilder> getServiceIdFieldBuilder() {
                if (serviceIdBuilder_ == null) {
                    serviceIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ServiceId, context.ContextOuterClass.ServiceId.Builder, context.ContextOuterClass.ServiceIdOrBuilder>(getServiceId(), getParentForChildren(), isClean());
                    serviceId_ = null;
                }
                return serviceIdBuilder_;
            }

            private context.ContextOuterClass.SliceId sliceId_;

            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.SliceId, context.ContextOuterClass.SliceId.Builder, context.ContextOuterClass.SliceIdOrBuilder> sliceIdBuilder_;

            /**
             * <code>.context.SliceId slice_id = 8;</code>
             * @return Whether the sliceId field is set.
             */
            public boolean hasSliceId() {
                return ((bitField0_ & 0x00000080) != 0);
            }

            /**
             * <code>.context.SliceId slice_id = 8;</code>
             * @return The sliceId.
             */
            public context.ContextOuterClass.SliceId getSliceId() {
                if (sliceIdBuilder_ == null) {
                    return sliceId_ == null ? context.ContextOuterClass.SliceId.getDefaultInstance() : sliceId_;
                } else {
                    return sliceIdBuilder_.getMessage();
                }
            }

            /**
             * <code>.context.SliceId slice_id = 8;</code>
             */
            public Builder setSliceId(context.ContextOuterClass.SliceId value) {
                if (sliceIdBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    sliceId_ = value;
                } else {
                    sliceIdBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000080;
                onChanged();
                return this;
            }

            /**
             * <code>.context.SliceId slice_id = 8;</code>
             */
            public Builder setSliceId(context.ContextOuterClass.SliceId.Builder builderForValue) {
                if (sliceIdBuilder_ == null) {
                    sliceId_ = builderForValue.build();
                } else {
                    sliceIdBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000080;
                onChanged();
                return this;
            }

            /**
             * <code>.context.SliceId slice_id = 8;</code>
             */
            public Builder mergeSliceId(context.ContextOuterClass.SliceId value) {
                if (sliceIdBuilder_ == null) {
                    if (((bitField0_ & 0x00000080) != 0) && sliceId_ != null && sliceId_ != context.ContextOuterClass.SliceId.getDefaultInstance()) {
                        getSliceIdBuilder().mergeFrom(value);
                    } else {
                        sliceId_ = value;
                    }
                } else {
                    sliceIdBuilder_.mergeFrom(value);
                }
                bitField0_ |= 0x00000080;
                onChanged();
                return this;
            }

            /**
             * <code>.context.SliceId slice_id = 8;</code>
             */
            public Builder clearSliceId() {
                bitField0_ = (bitField0_ & ~0x00000080);
                sliceId_ = null;
                if (sliceIdBuilder_ != null) {
                    sliceIdBuilder_.dispose();
                    sliceIdBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <code>.context.SliceId slice_id = 8;</code>
             */
            public context.ContextOuterClass.SliceId.Builder getSliceIdBuilder() {
                bitField0_ |= 0x00000080;
                onChanged();
                return getSliceIdFieldBuilder().getBuilder();
            }

            /**
             * <code>.context.SliceId slice_id = 8;</code>
             */
            public context.ContextOuterClass.SliceIdOrBuilder getSliceIdOrBuilder() {
                if (sliceIdBuilder_ != null) {
                    return sliceIdBuilder_.getMessageOrBuilder();
                } else {
                    return sliceId_ == null ? context.ContextOuterClass.SliceId.getDefaultInstance() : sliceId_;
                }
            }

            /**
             * <code>.context.SliceId slice_id = 8;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.SliceId, context.ContextOuterClass.SliceId.Builder, context.ContextOuterClass.SliceIdOrBuilder> getSliceIdFieldBuilder() {
                if (sliceIdBuilder_ == null) {
                    sliceIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.SliceId, context.ContextOuterClass.SliceId.Builder, context.ContextOuterClass.SliceIdOrBuilder>(getSliceId(), getParentForChildren(), isClean());
                    sliceId_ = null;
                }
                return sliceIdBuilder_;
            }

            private context.ContextOuterClass.ConnectionId connectionId_;

            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ConnectionId, context.ContextOuterClass.ConnectionId.Builder, context.ContextOuterClass.ConnectionIdOrBuilder> connectionIdBuilder_;

            /**
             * <code>.context.ConnectionId connection_id = 9;</code>
             * @return Whether the connectionId field is set.
             */
            public boolean hasConnectionId() {
                return ((bitField0_ & 0x00000100) != 0);
            }

            /**
             * <code>.context.ConnectionId connection_id = 9;</code>
             * @return The connectionId.
             */
            public context.ContextOuterClass.ConnectionId getConnectionId() {
                if (connectionIdBuilder_ == null) {
                    return connectionId_ == null ? context.ContextOuterClass.ConnectionId.getDefaultInstance() : connectionId_;
                } else {
                    return connectionIdBuilder_.getMessage();
                }
            }

            /**
             * <code>.context.ConnectionId connection_id = 9;</code>
             */
            public Builder setConnectionId(context.ContextOuterClass.ConnectionId value) {
                if (connectionIdBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    connectionId_ = value;
                } else {
                    connectionIdBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000100;
                onChanged();
                return this;
            }

            /**
             * <code>.context.ConnectionId connection_id = 9;</code>
             */
            public Builder setConnectionId(context.ContextOuterClass.ConnectionId.Builder builderForValue) {
                if (connectionIdBuilder_ == null) {
                    connectionId_ = builderForValue.build();
                } else {
                    connectionIdBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000100;
                onChanged();
                return this;
            }

            /**
             * <code>.context.ConnectionId connection_id = 9;</code>
             */
            public Builder mergeConnectionId(context.ContextOuterClass.ConnectionId value) {
                if (connectionIdBuilder_ == null) {
                    if (((bitField0_ & 0x00000100) != 0) && connectionId_ != null && connectionId_ != context.ContextOuterClass.ConnectionId.getDefaultInstance()) {
                        getConnectionIdBuilder().mergeFrom(value);
                    } else {
                        connectionId_ = value;
                    }
                } else {
                    connectionIdBuilder_.mergeFrom(value);
                }
                bitField0_ |= 0x00000100;
                onChanged();
                return this;
            }

            /**
             * <code>.context.ConnectionId connection_id = 9;</code>
             */
            public Builder clearConnectionId() {
                bitField0_ = (bitField0_ & ~0x00000100);
                connectionId_ = null;
                if (connectionIdBuilder_ != null) {
                    connectionIdBuilder_.dispose();
                    connectionIdBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <code>.context.ConnectionId connection_id = 9;</code>
             */
            public context.ContextOuterClass.ConnectionId.Builder getConnectionIdBuilder() {
                bitField0_ |= 0x00000100;
                onChanged();
                return getConnectionIdFieldBuilder().getBuilder();
            }

            /**
             * <code>.context.ConnectionId connection_id = 9;</code>
             */
            public context.ContextOuterClass.ConnectionIdOrBuilder getConnectionIdOrBuilder() {
                if (connectionIdBuilder_ != null) {
                    return connectionIdBuilder_.getMessageOrBuilder();
                } else {
                    return connectionId_ == null ? context.ContextOuterClass.ConnectionId.getDefaultInstance() : connectionId_;
                }
            }

            /**
             * <code>.context.ConnectionId connection_id = 9;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ConnectionId, context.ContextOuterClass.ConnectionId.Builder, context.ContextOuterClass.ConnectionIdOrBuilder> getConnectionIdFieldBuilder() {
                if (connectionIdBuilder_ == null) {
                    connectionIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ConnectionId, context.ContextOuterClass.ConnectionId.Builder, context.ContextOuterClass.ConnectionIdOrBuilder>(getConnectionId(), getParentForChildren(), isClean());
                    connectionId_ = null;
                }
                return connectionIdBuilder_;
            }

            private context.ContextOuterClass.LinkId linkId_;

            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.LinkId, context.ContextOuterClass.LinkId.Builder, context.ContextOuterClass.LinkIdOrBuilder> linkIdBuilder_;

            /**
             * <code>.context.LinkId link_id = 10;</code>
             * @return Whether the linkId field is set.
             */
            public boolean hasLinkId() {
                return ((bitField0_ & 0x00000200) != 0);
            }

            /**
             * <code>.context.LinkId link_id = 10;</code>
             * @return The linkId.
             */
            public context.ContextOuterClass.LinkId getLinkId() {
                if (linkIdBuilder_ == null) {
                    return linkId_ == null ? context.ContextOuterClass.LinkId.getDefaultInstance() : linkId_;
                } else {
                    return linkIdBuilder_.getMessage();
                }
            }

            /**
             * <code>.context.LinkId link_id = 10;</code>
             */
            public Builder setLinkId(context.ContextOuterClass.LinkId value) {
                if (linkIdBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    linkId_ = value;
                } else {
                    linkIdBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000200;
                onChanged();
                return this;
            }

            /**
             * <code>.context.LinkId link_id = 10;</code>
             */
            public Builder setLinkId(context.ContextOuterClass.LinkId.Builder builderForValue) {
                if (linkIdBuilder_ == null) {
                    linkId_ = builderForValue.build();
                } else {
                    linkIdBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000200;
                onChanged();
                return this;
            }

            /**
             * <code>.context.LinkId link_id = 10;</code>
             */
            public Builder mergeLinkId(context.ContextOuterClass.LinkId value) {
                if (linkIdBuilder_ == null) {
                    if (((bitField0_ & 0x00000200) != 0) && linkId_ != null && linkId_ != context.ContextOuterClass.LinkId.getDefaultInstance()) {
                        getLinkIdBuilder().mergeFrom(value);
                    } else {
                        linkId_ = value;
                    }
                } else {
                    linkIdBuilder_.mergeFrom(value);
                }
                bitField0_ |= 0x00000200;
                onChanged();
                return this;
            }

            /**
             * <code>.context.LinkId link_id = 10;</code>
             */
            public Builder clearLinkId() {
                bitField0_ = (bitField0_ & ~0x00000200);
                linkId_ = null;
                if (linkIdBuilder_ != null) {
                    linkIdBuilder_.dispose();
                    linkIdBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <code>.context.LinkId link_id = 10;</code>
             */
            public context.ContextOuterClass.LinkId.Builder getLinkIdBuilder() {
                bitField0_ |= 0x00000200;
                onChanged();
                return getLinkIdFieldBuilder().getBuilder();
            }

            /**
             * <code>.context.LinkId link_id = 10;</code>
             */
            public context.ContextOuterClass.LinkIdOrBuilder getLinkIdOrBuilder() {
                if (linkIdBuilder_ != null) {
                    return linkIdBuilder_.getMessageOrBuilder();
                } else {
                    return linkId_ == null ? context.ContextOuterClass.LinkId.getDefaultInstance() : linkId_;
                }
            }

            /**
             * <code>.context.LinkId link_id = 10;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.LinkId, context.ContextOuterClass.LinkId.Builder, context.ContextOuterClass.LinkIdOrBuilder> getLinkIdFieldBuilder() {
                if (linkIdBuilder_ == null) {
                    linkIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.LinkId, context.ContextOuterClass.LinkId.Builder, context.ContextOuterClass.LinkIdOrBuilder>(getLinkId(), getParentForChildren(), isClean());
                    linkId_ = null;
                }
                return linkIdBuilder_;
            }

            @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:monitoring.KpiDescriptor)
        }

        // @@protoc_insertion_point(class_scope:monitoring.KpiDescriptor)
        private static final monitoring.Monitoring.KpiDescriptor DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new monitoring.Monitoring.KpiDescriptor();
        }

        public static monitoring.Monitoring.KpiDescriptor getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

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

            @java.lang.Override
            public KpiDescriptor 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<KpiDescriptor> parser() {
            return PARSER;
        }

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

        @java.lang.Override
        public monitoring.Monitoring.KpiDescriptor getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    }

    public interface MonitorKpiRequestOrBuilder extends // @@protoc_insertion_point(interface_extends:monitoring.MonitorKpiRequest)
    com.google.protobuf.MessageOrBuilder {

        /**
         * <code>.monitoring.KpiId kpi_id = 1;</code>
         * @return Whether the kpiId field is set.
         */
        boolean hasKpiId();

        /**
         * <code>.monitoring.KpiId kpi_id = 1;</code>
         * @return The kpiId.
         */
        monitoring.Monitoring.KpiId getKpiId();

        /**
         * <code>.monitoring.KpiId kpi_id = 1;</code>
         */
        monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder();

        /**
         * <code>float monitoring_window_s = 2;</code>
         * @return The monitoringWindowS.
         */
        float getMonitoringWindowS();

        /**
         * <pre>
         * Pending add field to reflect Available Device Protocols
         * </pre>
         *
         * <code>float sampling_rate_s = 3;</code>
         * @return The samplingRateS.
         */
        float getSamplingRateS();
    }

    /**
     * Protobuf type {@code monitoring.MonitorKpiRequest}
     */
    public static final class MonitorKpiRequest extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:monitoring.MonitorKpiRequest)
    MonitorKpiRequestOrBuilder {

        private static final long serialVersionUID = 0L;

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

        private MonitorKpiRequest() {
        }

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

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return monitoring.Monitoring.internal_static_monitoring_MonitorKpiRequest_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            return monitoring.Monitoring.internal_static_monitoring_MonitorKpiRequest_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.MonitorKpiRequest.class, monitoring.Monitoring.MonitorKpiRequest.Builder.class);
        }

        public static final int KPI_ID_FIELD_NUMBER = 1;

        private monitoring.Monitoring.KpiId kpiId_;

        /**
         * <code>.monitoring.KpiId kpi_id = 1;</code>
         * @return Whether the kpiId field is set.
         */
        @java.lang.Override
        public boolean hasKpiId() {
            return kpiId_ != null;
        }

        /**
         * <code>.monitoring.KpiId kpi_id = 1;</code>
         * @return The kpiId.
         */
        @java.lang.Override
        public monitoring.Monitoring.KpiId getKpiId() {
            return kpiId_ == null ? monitoring.Monitoring.KpiId.getDefaultInstance() : kpiId_;
        }

        /**
         * <code>.monitoring.KpiId kpi_id = 1;</code>
         */
        @java.lang.Override
        public monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder() {
            return kpiId_ == null ? monitoring.Monitoring.KpiId.getDefaultInstance() : kpiId_;
        }

        public static final int MONITORING_WINDOW_S_FIELD_NUMBER = 2;

        private float monitoringWindowS_ = 0F;

        /**
         * <code>float monitoring_window_s = 2;</code>
         * @return The monitoringWindowS.
         */
        @java.lang.Override
        public float getMonitoringWindowS() {
            return monitoringWindowS_;
        }

        public static final int SAMPLING_RATE_S_FIELD_NUMBER = 3;

        private float samplingRateS_ = 0F;

        /**
         * <pre>
         * Pending add field to reflect Available Device Protocols
         * </pre>
         *
         * <code>float sampling_rate_s = 3;</code>
         * @return The samplingRateS.
         */
        @java.lang.Override
        public float getSamplingRateS() {
            return samplingRateS_;
        }

        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 (kpiId_ != null) {
                output.writeMessage(1, getKpiId());
            }
            if (java.lang.Float.floatToRawIntBits(monitoringWindowS_) != 0) {
                output.writeFloat(2, monitoringWindowS_);
            }
            if (java.lang.Float.floatToRawIntBits(samplingRateS_) != 0) {
                output.writeFloat(3, samplingRateS_);
            }
            getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;
            size = 0;
            if (kpiId_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getKpiId());
            }
            if (java.lang.Float.floatToRawIntBits(monitoringWindowS_) != 0) {
                size += com.google.protobuf.CodedOutputStream.computeFloatSize(2, monitoringWindowS_);
            }
            if (java.lang.Float.floatToRawIntBits(samplingRateS_) != 0) {
                size += com.google.protobuf.CodedOutputStream.computeFloatSize(3, samplingRateS_);
            }
            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 monitoring.Monitoring.MonitorKpiRequest)) {
                return super.equals(obj);
            }
            monitoring.Monitoring.MonitorKpiRequest other = (monitoring.Monitoring.MonitorKpiRequest) obj;
            if (hasKpiId() != other.hasKpiId())
                return false;
            if (hasKpiId()) {
                if (!getKpiId().equals(other.getKpiId()))
                    return false;
            }
            if (java.lang.Float.floatToIntBits(getMonitoringWindowS()) != java.lang.Float.floatToIntBits(other.getMonitoringWindowS()))
                return false;
            if (java.lang.Float.floatToIntBits(getSamplingRateS()) != java.lang.Float.floatToIntBits(other.getSamplingRateS()))
                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();
            if (hasKpiId()) {
                hash = (37 * hash) + KPI_ID_FIELD_NUMBER;
                hash = (53 * hash) + getKpiId().hashCode();
            }
            hash = (37 * hash) + MONITORING_WINDOW_S_FIELD_NUMBER;
            hash = (53 * hash) + java.lang.Float.floatToIntBits(getMonitoringWindowS());
            hash = (37 * hash) + SAMPLING_RATE_S_FIELD_NUMBER;
            hash = (53 * hash) + java.lang.Float.floatToIntBits(getSamplingRateS());
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static monitoring.Monitoring.MonitorKpiRequest parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.MonitorKpiRequest parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.MonitorKpiRequest parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.MonitorKpiRequest parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.MonitorKpiRequest parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.MonitorKpiRequest parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.MonitorKpiRequest parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.MonitorKpiRequest 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 monitoring.Monitoring.MonitorKpiRequest parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.MonitorKpiRequest 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 monitoring.Monitoring.MonitorKpiRequest parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.MonitorKpiRequest 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(monitoring.Monitoring.MonitorKpiRequest 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;
        }

        /**
         * Protobuf type {@code monitoring.MonitorKpiRequest}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:monitoring.MonitorKpiRequest)
        monitoring.Monitoring.MonitorKpiRequestOrBuilder {

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return monitoring.Monitoring.internal_static_monitoring_MonitorKpiRequest_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
                return monitoring.Monitoring.internal_static_monitoring_MonitorKpiRequest_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.MonitorKpiRequest.class, monitoring.Monitoring.MonitorKpiRequest.Builder.class);
            }

            // Construct using monitoring.Monitoring.MonitorKpiRequest.newBuilder()
            private Builder() {
            }

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

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                kpiId_ = null;
                if (kpiIdBuilder_ != null) {
                    kpiIdBuilder_.dispose();
                    kpiIdBuilder_ = null;
                }
                monitoringWindowS_ = 0F;
                samplingRateS_ = 0F;
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return monitoring.Monitoring.internal_static_monitoring_MonitorKpiRequest_descriptor;
            }

            @java.lang.Override
            public monitoring.Monitoring.MonitorKpiRequest getDefaultInstanceForType() {
                return monitoring.Monitoring.MonitorKpiRequest.getDefaultInstance();
            }

            @java.lang.Override
            public monitoring.Monitoring.MonitorKpiRequest build() {
                monitoring.Monitoring.MonitorKpiRequest result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public monitoring.Monitoring.MonitorKpiRequest buildPartial() {
                monitoring.Monitoring.MonitorKpiRequest result = new monitoring.Monitoring.MonitorKpiRequest(this);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                }
                onBuilt();
                return result;
            }

            private void buildPartial0(monitoring.Monitoring.MonitorKpiRequest result) {
                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    result.kpiId_ = kpiIdBuilder_ == null ? kpiId_ : kpiIdBuilder_.build();
                }
                if (((from_bitField0_ & 0x00000002) != 0)) {
                    result.monitoringWindowS_ = monitoringWindowS_;
                }
                if (((from_bitField0_ & 0x00000004) != 0)) {
                    result.samplingRateS_ = samplingRateS_;
                }
            }

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

            public Builder mergeFrom(monitoring.Monitoring.MonitorKpiRequest other) {
                if (other == monitoring.Monitoring.MonitorKpiRequest.getDefaultInstance())
                    return this;
                if (other.hasKpiId()) {
                    mergeKpiId(other.getKpiId());
                }
                if (other.getMonitoringWindowS() != 0F) {
                    setMonitoringWindowS(other.getMonitoringWindowS());
                }
                if (other.getSamplingRateS() != 0F) {
                    setSamplingRateS(other.getSamplingRateS());
                }
                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:
                                {
                                    input.readMessage(getKpiIdFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000001;
                                    break;
                                }
                            // case 10
                            case 21:
                                {
                                    monitoringWindowS_ = input.readFloat();
                                    bitField0_ |= 0x00000002;
                                    break;
                                }
                            // case 21
                            case 29:
                                {
                                    samplingRateS_ = input.readFloat();
                                    bitField0_ |= 0x00000004;
                                    break;
                                }
                            // case 29
                            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 monitoring.Monitoring.KpiId kpiId_;

            private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder> kpiIdBuilder_;

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             * @return Whether the kpiId field is set.
             */
            public boolean hasKpiId() {
                return ((bitField0_ & 0x00000001) != 0);
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             * @return The kpiId.
             */
            public monitoring.Monitoring.KpiId getKpiId() {
                if (kpiIdBuilder_ == null) {
                    return kpiId_ == null ? monitoring.Monitoring.KpiId.getDefaultInstance() : kpiId_;
                } else {
                    return kpiIdBuilder_.getMessage();
                }
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             */
            public Builder setKpiId(monitoring.Monitoring.KpiId value) {
                if (kpiIdBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    kpiId_ = value;
                } else {
                    kpiIdBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             */
            public Builder setKpiId(monitoring.Monitoring.KpiId.Builder builderForValue) {
                if (kpiIdBuilder_ == null) {
                    kpiId_ = builderForValue.build();
                } else {
                    kpiIdBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             */
            public Builder mergeKpiId(monitoring.Monitoring.KpiId value) {
                if (kpiIdBuilder_ == null) {
                    if (((bitField0_ & 0x00000001) != 0) && kpiId_ != null && kpiId_ != monitoring.Monitoring.KpiId.getDefaultInstance()) {
                        getKpiIdBuilder().mergeFrom(value);
                    } else {
                        kpiId_ = value;
                    }
                } else {
                    kpiIdBuilder_.mergeFrom(value);
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             */
            public Builder clearKpiId() {
                bitField0_ = (bitField0_ & ~0x00000001);
                kpiId_ = null;
                if (kpiIdBuilder_ != null) {
                    kpiIdBuilder_.dispose();
                    kpiIdBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             */
            public monitoring.Monitoring.KpiId.Builder getKpiIdBuilder() {
                bitField0_ |= 0x00000001;
                onChanged();
                return getKpiIdFieldBuilder().getBuilder();
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             */
            public monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder() {
                if (kpiIdBuilder_ != null) {
                    return kpiIdBuilder_.getMessageOrBuilder();
                } else {
                    return kpiId_ == null ? monitoring.Monitoring.KpiId.getDefaultInstance() : kpiId_;
                }
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder> getKpiIdFieldBuilder() {
                if (kpiIdBuilder_ == null) {
                    kpiIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder>(getKpiId(), getParentForChildren(), isClean());
                    kpiId_ = null;
                }
                return kpiIdBuilder_;
            }

            private float monitoringWindowS_;

            /**
             * <code>float monitoring_window_s = 2;</code>
             * @return The monitoringWindowS.
             */
            @java.lang.Override
            public float getMonitoringWindowS() {
                return monitoringWindowS_;
            }

            /**
             * <code>float monitoring_window_s = 2;</code>
             * @param value The monitoringWindowS to set.
             * @return This builder for chaining.
             */
            public Builder setMonitoringWindowS(float value) {
                monitoringWindowS_ = value;
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>float monitoring_window_s = 2;</code>
             * @return This builder for chaining.
             */
            public Builder clearMonitoringWindowS() {
                bitField0_ = (bitField0_ & ~0x00000002);
                monitoringWindowS_ = 0F;
                onChanged();
                return this;
            }

            private float samplingRateS_;

            /**
             * <pre>
             * Pending add field to reflect Available Device Protocols
             * </pre>
             *
             * <code>float sampling_rate_s = 3;</code>
             * @return The samplingRateS.
             */
            @java.lang.Override
            public float getSamplingRateS() {
                return samplingRateS_;
            }

            /**
             * <pre>
             * Pending add field to reflect Available Device Protocols
             * </pre>
             *
             * <code>float sampling_rate_s = 3;</code>
             * @param value The samplingRateS to set.
             * @return This builder for chaining.
             */
            public Builder setSamplingRateS(float value) {
                samplingRateS_ = value;
                bitField0_ |= 0x00000004;
                onChanged();
                return this;
            }

            /**
             * <pre>
             * Pending add field to reflect Available Device Protocols
             * </pre>
             *
             * <code>float sampling_rate_s = 3;</code>
             * @return This builder for chaining.
             */
            public Builder clearSamplingRateS() {
                bitField0_ = (bitField0_ & ~0x00000004);
                samplingRateS_ = 0F;
                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:monitoring.MonitorKpiRequest)
        }

        // @@protoc_insertion_point(class_scope:monitoring.MonitorKpiRequest)
        private static final monitoring.Monitoring.MonitorKpiRequest DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new monitoring.Monitoring.MonitorKpiRequest();
        }

        public static monitoring.Monitoring.MonitorKpiRequest getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

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

            @java.lang.Override
            public MonitorKpiRequest 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<MonitorKpiRequest> parser() {
            return PARSER;
        }

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

        @java.lang.Override
        public monitoring.Monitoring.MonitorKpiRequest getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    }

    public interface KpiQueryOrBuilder extends // @@protoc_insertion_point(interface_extends:monitoring.KpiQuery)
    com.google.protobuf.MessageOrBuilder {

        /**
         * <code>repeated .monitoring.KpiId kpi_ids = 1;</code>
         */
        java.util.List<monitoring.Monitoring.KpiId> getKpiIdsList();

        /**
         * <code>repeated .monitoring.KpiId kpi_ids = 1;</code>
         */
        monitoring.Monitoring.KpiId getKpiIds(int index);

        /**
         * <code>repeated .monitoring.KpiId kpi_ids = 1;</code>
         */
        int getKpiIdsCount();

        /**
         * <code>repeated .monitoring.KpiId kpi_ids = 1;</code>
         */
        java.util.List<? extends monitoring.Monitoring.KpiIdOrBuilder> getKpiIdsOrBuilderList();

        /**
         * <code>repeated .monitoring.KpiId kpi_ids = 1;</code>
         */
        monitoring.Monitoring.KpiIdOrBuilder getKpiIdsOrBuilder(int index);

        /**
         * <code>float monitoring_window_s = 2;</code>
         * @return The monitoringWindowS.
         */
        float getMonitoringWindowS();

        /**
         * <pre>
         * used when you want something like "get the last N many samples
         * </pre>
         *
         * <code>uint32 last_n_samples = 3;</code>
         * @return The lastNSamples.
         */
        int getLastNSamples();

        /**
         * <pre>
         * used when you want something like "get the samples since X date/time"
         * </pre>
         *
         * <code>.context.Timestamp start_timestamp = 4;</code>
         * @return Whether the startTimestamp field is set.
         */
        boolean hasStartTimestamp();

        /**
         * <pre>
         * used when you want something like "get the samples since X date/time"
         * </pre>
         *
         * <code>.context.Timestamp start_timestamp = 4;</code>
         * @return The startTimestamp.
         */
        context.ContextOuterClass.Timestamp getStartTimestamp();

        /**
         * <pre>
         * used when you want something like "get the samples since X date/time"
         * </pre>
         *
         * <code>.context.Timestamp start_timestamp = 4;</code>
         */
        context.ContextOuterClass.TimestampOrBuilder getStartTimestampOrBuilder();

        /**
         * <pre>
         * used when you want something like "get the samples until X date/time"
         * </pre>
         *
         * <code>.context.Timestamp end_timestamp = 5;</code>
         * @return Whether the endTimestamp field is set.
         */
        boolean hasEndTimestamp();

        /**
         * <pre>
         * used when you want something like "get the samples until X date/time"
         * </pre>
         *
         * <code>.context.Timestamp end_timestamp = 5;</code>
         * @return The endTimestamp.
         */
        context.ContextOuterClass.Timestamp getEndTimestamp();

        /**
         * <pre>
         * used when you want something like "get the samples until X date/time"
         * </pre>
         *
         * <code>.context.Timestamp end_timestamp = 5;</code>
         */
        context.ContextOuterClass.TimestampOrBuilder getEndTimestampOrBuilder();
    }

    /**
     * Protobuf type {@code monitoring.KpiQuery}
     */
    public static final class KpiQuery extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:monitoring.KpiQuery)
    KpiQueryOrBuilder {

        private static final long serialVersionUID = 0L;

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

        private KpiQuery() {
            kpiIds_ = java.util.Collections.emptyList();
        }

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

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return monitoring.Monitoring.internal_static_monitoring_KpiQuery_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            return monitoring.Monitoring.internal_static_monitoring_KpiQuery_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.KpiQuery.class, monitoring.Monitoring.KpiQuery.Builder.class);
        }

        public static final int KPI_IDS_FIELD_NUMBER = 1;

        @SuppressWarnings("serial")
        private java.util.List<monitoring.Monitoring.KpiId> kpiIds_;

        /**
         * <code>repeated .monitoring.KpiId kpi_ids = 1;</code>
         */
        @java.lang.Override
        public java.util.List<monitoring.Monitoring.KpiId> getKpiIdsList() {
            return kpiIds_;
        }

        /**
         * <code>repeated .monitoring.KpiId kpi_ids = 1;</code>
         */
        @java.lang.Override
        public java.util.List<? extends monitoring.Monitoring.KpiIdOrBuilder> getKpiIdsOrBuilderList() {
            return kpiIds_;
        }

        /**
         * <code>repeated .monitoring.KpiId kpi_ids = 1;</code>
         */
        @java.lang.Override
        public int getKpiIdsCount() {
            return kpiIds_.size();
        }

        /**
         * <code>repeated .monitoring.KpiId kpi_ids = 1;</code>
         */
        @java.lang.Override
        public monitoring.Monitoring.KpiId getKpiIds(int index) {
            return kpiIds_.get(index);
        }

        /**
         * <code>repeated .monitoring.KpiId kpi_ids = 1;</code>
         */
        @java.lang.Override
        public monitoring.Monitoring.KpiIdOrBuilder getKpiIdsOrBuilder(int index) {
            return kpiIds_.get(index);
        }

        public static final int MONITORING_WINDOW_S_FIELD_NUMBER = 2;

        private float monitoringWindowS_ = 0F;

        /**
         * <code>float monitoring_window_s = 2;</code>
         * @return The monitoringWindowS.
         */
        @java.lang.Override
        public float getMonitoringWindowS() {
            return monitoringWindowS_;
        }

        public static final int LAST_N_SAMPLES_FIELD_NUMBER = 3;

        private int lastNSamples_ = 0;

        /**
         * <pre>
         * used when you want something like "get the last N many samples
         * </pre>
         *
         * <code>uint32 last_n_samples = 3;</code>
         * @return The lastNSamples.
         */
        @java.lang.Override
        public int getLastNSamples() {
            return lastNSamples_;
        }

        public static final int START_TIMESTAMP_FIELD_NUMBER = 4;

        private context.ContextOuterClass.Timestamp startTimestamp_;

        /**
         * <pre>
         * used when you want something like "get the samples since X date/time"
         * </pre>
         *
         * <code>.context.Timestamp start_timestamp = 4;</code>
         * @return Whether the startTimestamp field is set.
         */
        @java.lang.Override
        public boolean hasStartTimestamp() {
            return startTimestamp_ != null;
        }

        /**
         * <pre>
         * used when you want something like "get the samples since X date/time"
         * </pre>
         *
         * <code>.context.Timestamp start_timestamp = 4;</code>
         * @return The startTimestamp.
         */
        @java.lang.Override
        public context.ContextOuterClass.Timestamp getStartTimestamp() {
            return startTimestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : startTimestamp_;
        }

        /**
         * <pre>
         * used when you want something like "get the samples since X date/time"
         * </pre>
         *
         * <code>.context.Timestamp start_timestamp = 4;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.TimestampOrBuilder getStartTimestampOrBuilder() {
            return startTimestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : startTimestamp_;
        }

        public static final int END_TIMESTAMP_FIELD_NUMBER = 5;

        private context.ContextOuterClass.Timestamp endTimestamp_;

        /**
         * <pre>
         * used when you want something like "get the samples until X date/time"
         * </pre>
         *
         * <code>.context.Timestamp end_timestamp = 5;</code>
         * @return Whether the endTimestamp field is set.
         */
        @java.lang.Override
        public boolean hasEndTimestamp() {
            return endTimestamp_ != null;
        }

        /**
         * <pre>
         * used when you want something like "get the samples until X date/time"
         * </pre>
         *
         * <code>.context.Timestamp end_timestamp = 5;</code>
         * @return The endTimestamp.
         */
        @java.lang.Override
        public context.ContextOuterClass.Timestamp getEndTimestamp() {
            return endTimestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : endTimestamp_;
        }

        /**
         * <pre>
         * used when you want something like "get the samples until X date/time"
         * </pre>
         *
         * <code>.context.Timestamp end_timestamp = 5;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.TimestampOrBuilder getEndTimestampOrBuilder() {
            return endTimestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : endTimestamp_;
        }

        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 {
            for (int i = 0; i < kpiIds_.size(); i++) {
                output.writeMessage(1, kpiIds_.get(i));
            }
            if (java.lang.Float.floatToRawIntBits(monitoringWindowS_) != 0) {
                output.writeFloat(2, monitoringWindowS_);
            }
            if (lastNSamples_ != 0) {
                output.writeUInt32(3, lastNSamples_);
            }
            if (startTimestamp_ != null) {
                output.writeMessage(4, getStartTimestamp());
            }
            if (endTimestamp_ != null) {
                output.writeMessage(5, getEndTimestamp());
            }
            getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;
            size = 0;
            for (int i = 0; i < kpiIds_.size(); i++) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, kpiIds_.get(i));
            }
            if (java.lang.Float.floatToRawIntBits(monitoringWindowS_) != 0) {
                size += com.google.protobuf.CodedOutputStream.computeFloatSize(2, monitoringWindowS_);
            }
            if (lastNSamples_ != 0) {
                size += com.google.protobuf.CodedOutputStream.computeUInt32Size(3, lastNSamples_);
            }
            if (startTimestamp_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getStartTimestamp());
            }
            if (endTimestamp_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getEndTimestamp());
            }
            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 monitoring.Monitoring.KpiQuery)) {
                return super.equals(obj);
            }
            monitoring.Monitoring.KpiQuery other = (monitoring.Monitoring.KpiQuery) obj;
            if (!getKpiIdsList().equals(other.getKpiIdsList()))
                return false;
            if (java.lang.Float.floatToIntBits(getMonitoringWindowS()) != java.lang.Float.floatToIntBits(other.getMonitoringWindowS()))
                return false;
            if (getLastNSamples() != other.getLastNSamples())
                return false;
            if (hasStartTimestamp() != other.hasStartTimestamp())
                return false;
            if (hasStartTimestamp()) {
                if (!getStartTimestamp().equals(other.getStartTimestamp()))
                    return false;
            }
            if (hasEndTimestamp() != other.hasEndTimestamp())
                return false;
            if (hasEndTimestamp()) {
                if (!getEndTimestamp().equals(other.getEndTimestamp()))
                    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();
            if (getKpiIdsCount() > 0) {
                hash = (37 * hash) + KPI_IDS_FIELD_NUMBER;
                hash = (53 * hash) + getKpiIdsList().hashCode();
            }
            hash = (37 * hash) + MONITORING_WINDOW_S_FIELD_NUMBER;
            hash = (53 * hash) + java.lang.Float.floatToIntBits(getMonitoringWindowS());
            hash = (37 * hash) + LAST_N_SAMPLES_FIELD_NUMBER;
            hash = (53 * hash) + getLastNSamples();
            if (hasStartTimestamp()) {
                hash = (37 * hash) + START_TIMESTAMP_FIELD_NUMBER;
                hash = (53 * hash) + getStartTimestamp().hashCode();
            }
            if (hasEndTimestamp()) {
                hash = (37 * hash) + END_TIMESTAMP_FIELD_NUMBER;
                hash = (53 * hash) + getEndTimestamp().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static monitoring.Monitoring.KpiQuery parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.KpiQuery parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.KpiQuery parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.KpiQuery parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.KpiQuery parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.KpiQuery parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.KpiQuery parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.KpiQuery 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 monitoring.Monitoring.KpiQuery parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.KpiQuery 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 monitoring.Monitoring.KpiQuery parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.KpiQuery 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(monitoring.Monitoring.KpiQuery 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;
        }

        /**
         * Protobuf type {@code monitoring.KpiQuery}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:monitoring.KpiQuery)
        monitoring.Monitoring.KpiQueryOrBuilder {

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return monitoring.Monitoring.internal_static_monitoring_KpiQuery_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
                return monitoring.Monitoring.internal_static_monitoring_KpiQuery_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.KpiQuery.class, monitoring.Monitoring.KpiQuery.Builder.class);
            }

            // Construct using monitoring.Monitoring.KpiQuery.newBuilder()
            private Builder() {
            }

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

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                if (kpiIdsBuilder_ == null) {
                    kpiIds_ = java.util.Collections.emptyList();
                } else {
                    kpiIds_ = null;
                    kpiIdsBuilder_.clear();
                }
                bitField0_ = (bitField0_ & ~0x00000001);
                monitoringWindowS_ = 0F;
                lastNSamples_ = 0;
                startTimestamp_ = null;
                if (startTimestampBuilder_ != null) {
                    startTimestampBuilder_.dispose();
                    startTimestampBuilder_ = null;
                }
                endTimestamp_ = null;
                if (endTimestampBuilder_ != null) {
                    endTimestampBuilder_.dispose();
                    endTimestampBuilder_ = null;
                }
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return monitoring.Monitoring.internal_static_monitoring_KpiQuery_descriptor;
            }

            @java.lang.Override
            public monitoring.Monitoring.KpiQuery getDefaultInstanceForType() {
                return monitoring.Monitoring.KpiQuery.getDefaultInstance();
            }

            @java.lang.Override
            public monitoring.Monitoring.KpiQuery build() {
                monitoring.Monitoring.KpiQuery result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

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

            private void buildPartialRepeatedFields(monitoring.Monitoring.KpiQuery result) {
                if (kpiIdsBuilder_ == null) {
                    if (((bitField0_ & 0x00000001) != 0)) {
                        kpiIds_ = java.util.Collections.unmodifiableList(kpiIds_);
                        bitField0_ = (bitField0_ & ~0x00000001);
                    }
                    result.kpiIds_ = kpiIds_;
                } else {
                    result.kpiIds_ = kpiIdsBuilder_.build();
                }
            }

            private void buildPartial0(monitoring.Monitoring.KpiQuery result) {
                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000002) != 0)) {
                    result.monitoringWindowS_ = monitoringWindowS_;
                }
                if (((from_bitField0_ & 0x00000004) != 0)) {
                    result.lastNSamples_ = lastNSamples_;
                }
                if (((from_bitField0_ & 0x00000008) != 0)) {
                    result.startTimestamp_ = startTimestampBuilder_ == null ? startTimestamp_ : startTimestampBuilder_.build();
                }
                if (((from_bitField0_ & 0x00000010) != 0)) {
                    result.endTimestamp_ = endTimestampBuilder_ == null ? endTimestamp_ : endTimestampBuilder_.build();
                }
            }

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

            public Builder mergeFrom(monitoring.Monitoring.KpiQuery other) {
                if (other == monitoring.Monitoring.KpiQuery.getDefaultInstance())
                    return this;
                if (kpiIdsBuilder_ == null) {
                    if (!other.kpiIds_.isEmpty()) {
                        if (kpiIds_.isEmpty()) {
                            kpiIds_ = other.kpiIds_;
                            bitField0_ = (bitField0_ & ~0x00000001);
                        } else {
                            ensureKpiIdsIsMutable();
                            kpiIds_.addAll(other.kpiIds_);
                        }
                        onChanged();
                    }
                } else {
                    if (!other.kpiIds_.isEmpty()) {
                        if (kpiIdsBuilder_.isEmpty()) {
                            kpiIdsBuilder_.dispose();
                            kpiIdsBuilder_ = null;
                            kpiIds_ = other.kpiIds_;
                            bitField0_ = (bitField0_ & ~0x00000001);
                            kpiIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getKpiIdsFieldBuilder() : null;
                        } else {
                            kpiIdsBuilder_.addAllMessages(other.kpiIds_);
                        }
                    }
                }
                if (other.getMonitoringWindowS() != 0F) {
                    setMonitoringWindowS(other.getMonitoringWindowS());
                }
                if (other.getLastNSamples() != 0) {
                    setLastNSamples(other.getLastNSamples());
                }
                if (other.hasStartTimestamp()) {
                    mergeStartTimestamp(other.getStartTimestamp());
                }
                if (other.hasEndTimestamp()) {
                    mergeEndTimestamp(other.getEndTimestamp());
                }
                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:
                                {
                                    monitoring.Monitoring.KpiId m = input.readMessage(monitoring.Monitoring.KpiId.parser(), extensionRegistry);
                                    if (kpiIdsBuilder_ == null) {
                                        ensureKpiIdsIsMutable();
                                        kpiIds_.add(m);
                                    } else {
                                        kpiIdsBuilder_.addMessage(m);
                                    }
                                    break;
                                }
                            // case 10
                            case 21:
                                {
                                    monitoringWindowS_ = input.readFloat();
                                    bitField0_ |= 0x00000002;
                                    break;
                                }
                            // case 21
                            case 24:
                                {
                                    lastNSamples_ = input.readUInt32();
                                    bitField0_ |= 0x00000004;
                                    break;
                                }
                            // case 24
                            case 34:
                                {
                                    input.readMessage(getStartTimestampFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000008;
                                    break;
                                }
                            // case 34
                            case 42:
                                {
                                    input.readMessage(getEndTimestampFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000010;
                                    break;
                                }
                            // case 42
                            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.util.List<monitoring.Monitoring.KpiId> kpiIds_ = java.util.Collections.emptyList();

            private void ensureKpiIdsIsMutable() {
                if (!((bitField0_ & 0x00000001) != 0)) {
                    kpiIds_ = new java.util.ArrayList<monitoring.Monitoring.KpiId>(kpiIds_);
                    bitField0_ |= 0x00000001;
                }
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder> kpiIdsBuilder_;

            /**
             * <code>repeated .monitoring.KpiId kpi_ids = 1;</code>
             */
            public java.util.List<monitoring.Monitoring.KpiId> getKpiIdsList() {
                if (kpiIdsBuilder_ == null) {
                    return java.util.Collections.unmodifiableList(kpiIds_);
                } else {
                    return kpiIdsBuilder_.getMessageList();
                }
            }

            /**
             * <code>repeated .monitoring.KpiId kpi_ids = 1;</code>
             */
            public int getKpiIdsCount() {
                if (kpiIdsBuilder_ == null) {
                    return kpiIds_.size();
                } else {
                    return kpiIdsBuilder_.getCount();
                }
            }

            /**
             * <code>repeated .monitoring.KpiId kpi_ids = 1;</code>
             */
            public monitoring.Monitoring.KpiId getKpiIds(int index) {
                if (kpiIdsBuilder_ == null) {
                    return kpiIds_.get(index);
                } else {
                    return kpiIdsBuilder_.getMessage(index);
                }
            }

            /**
             * <code>repeated .monitoring.KpiId kpi_ids = 1;</code>
             */
            public Builder setKpiIds(int index, monitoring.Monitoring.KpiId value) {
                if (kpiIdsBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureKpiIdsIsMutable();
                    kpiIds_.set(index, value);
                    onChanged();
                } else {
                    kpiIdsBuilder_.setMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.KpiId kpi_ids = 1;</code>
             */
            public Builder setKpiIds(int index, monitoring.Monitoring.KpiId.Builder builderForValue) {
                if (kpiIdsBuilder_ == null) {
                    ensureKpiIdsIsMutable();
                    kpiIds_.set(index, builderForValue.build());
                    onChanged();
                } else {
                    kpiIdsBuilder_.setMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.KpiId kpi_ids = 1;</code>
             */
            public Builder addKpiIds(monitoring.Monitoring.KpiId value) {
                if (kpiIdsBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureKpiIdsIsMutable();
                    kpiIds_.add(value);
                    onChanged();
                } else {
                    kpiIdsBuilder_.addMessage(value);
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.KpiId kpi_ids = 1;</code>
             */
            public Builder addKpiIds(int index, monitoring.Monitoring.KpiId value) {
                if (kpiIdsBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureKpiIdsIsMutable();
                    kpiIds_.add(index, value);
                    onChanged();
                } else {
                    kpiIdsBuilder_.addMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.KpiId kpi_ids = 1;</code>
             */
            public Builder addKpiIds(monitoring.Monitoring.KpiId.Builder builderForValue) {
                if (kpiIdsBuilder_ == null) {
                    ensureKpiIdsIsMutable();
                    kpiIds_.add(builderForValue.build());
                    onChanged();
                } else {
                    kpiIdsBuilder_.addMessage(builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.KpiId kpi_ids = 1;</code>
             */
            public Builder addKpiIds(int index, monitoring.Monitoring.KpiId.Builder builderForValue) {
                if (kpiIdsBuilder_ == null) {
                    ensureKpiIdsIsMutable();
                    kpiIds_.add(index, builderForValue.build());
                    onChanged();
                } else {
                    kpiIdsBuilder_.addMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.KpiId kpi_ids = 1;</code>
             */
            public Builder addAllKpiIds(java.lang.Iterable<? extends monitoring.Monitoring.KpiId> values) {
                if (kpiIdsBuilder_ == null) {
                    ensureKpiIdsIsMutable();
                    com.google.protobuf.AbstractMessageLite.Builder.addAll(values, kpiIds_);
                    onChanged();
                } else {
                    kpiIdsBuilder_.addAllMessages(values);
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.KpiId kpi_ids = 1;</code>
             */
            public Builder clearKpiIds() {
                if (kpiIdsBuilder_ == null) {
                    kpiIds_ = java.util.Collections.emptyList();
                    bitField0_ = (bitField0_ & ~0x00000001);
                    onChanged();
                } else {
                    kpiIdsBuilder_.clear();
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.KpiId kpi_ids = 1;</code>
             */
            public Builder removeKpiIds(int index) {
                if (kpiIdsBuilder_ == null) {
                    ensureKpiIdsIsMutable();
                    kpiIds_.remove(index);
                    onChanged();
                } else {
                    kpiIdsBuilder_.remove(index);
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.KpiId kpi_ids = 1;</code>
             */
            public monitoring.Monitoring.KpiId.Builder getKpiIdsBuilder(int index) {
                return getKpiIdsFieldBuilder().getBuilder(index);
            }

            /**
             * <code>repeated .monitoring.KpiId kpi_ids = 1;</code>
             */
            public monitoring.Monitoring.KpiIdOrBuilder getKpiIdsOrBuilder(int index) {
                if (kpiIdsBuilder_ == null) {
                    return kpiIds_.get(index);
                } else {
                    return kpiIdsBuilder_.getMessageOrBuilder(index);
                }
            }

            /**
             * <code>repeated .monitoring.KpiId kpi_ids = 1;</code>
             */
            public java.util.List<? extends monitoring.Monitoring.KpiIdOrBuilder> getKpiIdsOrBuilderList() {
                if (kpiIdsBuilder_ != null) {
                    return kpiIdsBuilder_.getMessageOrBuilderList();
                } else {
                    return java.util.Collections.unmodifiableList(kpiIds_);
                }
            }

            /**
             * <code>repeated .monitoring.KpiId kpi_ids = 1;</code>
             */
            public monitoring.Monitoring.KpiId.Builder addKpiIdsBuilder() {
                return getKpiIdsFieldBuilder().addBuilder(monitoring.Monitoring.KpiId.getDefaultInstance());
            }

            /**
             * <code>repeated .monitoring.KpiId kpi_ids = 1;</code>
             */
            public monitoring.Monitoring.KpiId.Builder addKpiIdsBuilder(int index) {
                return getKpiIdsFieldBuilder().addBuilder(index, monitoring.Monitoring.KpiId.getDefaultInstance());
            }

            /**
             * <code>repeated .monitoring.KpiId kpi_ids = 1;</code>
             */
            public java.util.List<monitoring.Monitoring.KpiId.Builder> getKpiIdsBuilderList() {
                return getKpiIdsFieldBuilder().getBuilderList();
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder> getKpiIdsFieldBuilder() {
                if (kpiIdsBuilder_ == null) {
                    kpiIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder>(kpiIds_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean());
                    kpiIds_ = null;
                }
                return kpiIdsBuilder_;
            }

            private float monitoringWindowS_;

            /**
             * <code>float monitoring_window_s = 2;</code>
             * @return The monitoringWindowS.
             */
            @java.lang.Override
            public float getMonitoringWindowS() {
                return monitoringWindowS_;
            }

            /**
             * <code>float monitoring_window_s = 2;</code>
             * @param value The monitoringWindowS to set.
             * @return This builder for chaining.
             */
            public Builder setMonitoringWindowS(float value) {
                monitoringWindowS_ = value;
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>float monitoring_window_s = 2;</code>
             * @return This builder for chaining.
             */
            public Builder clearMonitoringWindowS() {
                bitField0_ = (bitField0_ & ~0x00000002);
                monitoringWindowS_ = 0F;
                onChanged();
                return this;
            }

            private int lastNSamples_;

            /**
             * <pre>
             * used when you want something like "get the last N many samples
             * </pre>
             *
             * <code>uint32 last_n_samples = 3;</code>
             * @return The lastNSamples.
             */
            @java.lang.Override
            public int getLastNSamples() {
                return lastNSamples_;
            }

            /**
             * <pre>
             * used when you want something like "get the last N many samples
             * </pre>
             *
             * <code>uint32 last_n_samples = 3;</code>
             * @param value The lastNSamples to set.
             * @return This builder for chaining.
             */
            public Builder setLastNSamples(int value) {
                lastNSamples_ = value;
                bitField0_ |= 0x00000004;
                onChanged();
                return this;
            }

            /**
             * <pre>
             * used when you want something like "get the last N many samples
             * </pre>
             *
             * <code>uint32 last_n_samples = 3;</code>
             * @return This builder for chaining.
             */
            public Builder clearLastNSamples() {
                bitField0_ = (bitField0_ & ~0x00000004);
                lastNSamples_ = 0;
                onChanged();
                return this;
            }

            private context.ContextOuterClass.Timestamp startTimestamp_;

            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Timestamp, context.ContextOuterClass.Timestamp.Builder, context.ContextOuterClass.TimestampOrBuilder> startTimestampBuilder_;

            /**
             * <pre>
             * used when you want something like "get the samples since X date/time"
             * </pre>
             *
             * <code>.context.Timestamp start_timestamp = 4;</code>
             * @return Whether the startTimestamp field is set.
             */
            public boolean hasStartTimestamp() {
                return ((bitField0_ & 0x00000008) != 0);
            }

            /**
             * <pre>
             * used when you want something like "get the samples since X date/time"
             * </pre>
             *
             * <code>.context.Timestamp start_timestamp = 4;</code>
             * @return The startTimestamp.
             */
            public context.ContextOuterClass.Timestamp getStartTimestamp() {
                if (startTimestampBuilder_ == null) {
                    return startTimestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : startTimestamp_;
                } else {
                    return startTimestampBuilder_.getMessage();
                }
            }

            /**
             * <pre>
             * used when you want something like "get the samples since X date/time"
             * </pre>
             *
             * <code>.context.Timestamp start_timestamp = 4;</code>
             */
            public Builder setStartTimestamp(context.ContextOuterClass.Timestamp value) {
                if (startTimestampBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    startTimestamp_ = value;
                } else {
                    startTimestampBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000008;
                onChanged();
                return this;
            }

            /**
             * <pre>
             * used when you want something like "get the samples since X date/time"
             * </pre>
             *
             * <code>.context.Timestamp start_timestamp = 4;</code>
             */
            public Builder setStartTimestamp(context.ContextOuterClass.Timestamp.Builder builderForValue) {
                if (startTimestampBuilder_ == null) {
                    startTimestamp_ = builderForValue.build();
                } else {
                    startTimestampBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000008;
                onChanged();
                return this;
            }

            /**
             * <pre>
             * used when you want something like "get the samples since X date/time"
             * </pre>
             *
             * <code>.context.Timestamp start_timestamp = 4;</code>
             */
            public Builder mergeStartTimestamp(context.ContextOuterClass.Timestamp value) {
                if (startTimestampBuilder_ == null) {
                    if (((bitField0_ & 0x00000008) != 0) && startTimestamp_ != null && startTimestamp_ != context.ContextOuterClass.Timestamp.getDefaultInstance()) {
                        getStartTimestampBuilder().mergeFrom(value);
                    } else {
                        startTimestamp_ = value;
                    }
                } else {
                    startTimestampBuilder_.mergeFrom(value);
                }
                bitField0_ |= 0x00000008;
                onChanged();
                return this;
            }

            /**
             * <pre>
             * used when you want something like "get the samples since X date/time"
             * </pre>
             *
             * <code>.context.Timestamp start_timestamp = 4;</code>
             */
            public Builder clearStartTimestamp() {
                bitField0_ = (bitField0_ & ~0x00000008);
                startTimestamp_ = null;
                if (startTimestampBuilder_ != null) {
                    startTimestampBuilder_.dispose();
                    startTimestampBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <pre>
             * used when you want something like "get the samples since X date/time"
             * </pre>
             *
             * <code>.context.Timestamp start_timestamp = 4;</code>
             */
            public context.ContextOuterClass.Timestamp.Builder getStartTimestampBuilder() {
                bitField0_ |= 0x00000008;
                onChanged();
                return getStartTimestampFieldBuilder().getBuilder();
            }

            /**
             * <pre>
             * used when you want something like "get the samples since X date/time"
             * </pre>
             *
             * <code>.context.Timestamp start_timestamp = 4;</code>
             */
            public context.ContextOuterClass.TimestampOrBuilder getStartTimestampOrBuilder() {
                if (startTimestampBuilder_ != null) {
                    return startTimestampBuilder_.getMessageOrBuilder();
                } else {
                    return startTimestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : startTimestamp_;
                }
            }

            /**
             * <pre>
             * used when you want something like "get the samples since X date/time"
             * </pre>
             *
             * <code>.context.Timestamp start_timestamp = 4;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Timestamp, context.ContextOuterClass.Timestamp.Builder, context.ContextOuterClass.TimestampOrBuilder> getStartTimestampFieldBuilder() {
                if (startTimestampBuilder_ == null) {
                    startTimestampBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Timestamp, context.ContextOuterClass.Timestamp.Builder, context.ContextOuterClass.TimestampOrBuilder>(getStartTimestamp(), getParentForChildren(), isClean());
                    startTimestamp_ = null;
                }
                return startTimestampBuilder_;
            }

            private context.ContextOuterClass.Timestamp endTimestamp_;

            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Timestamp, context.ContextOuterClass.Timestamp.Builder, context.ContextOuterClass.TimestampOrBuilder> endTimestampBuilder_;

            /**
             * <pre>
             * used when you want something like "get the samples until X date/time"
             * </pre>
             *
             * <code>.context.Timestamp end_timestamp = 5;</code>
             * @return Whether the endTimestamp field is set.
             */
            public boolean hasEndTimestamp() {
                return ((bitField0_ & 0x00000010) != 0);
            }

            /**
             * <pre>
             * used when you want something like "get the samples until X date/time"
             * </pre>
             *
             * <code>.context.Timestamp end_timestamp = 5;</code>
             * @return The endTimestamp.
             */
            public context.ContextOuterClass.Timestamp getEndTimestamp() {
                if (endTimestampBuilder_ == null) {
                    return endTimestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : endTimestamp_;
                } else {
                    return endTimestampBuilder_.getMessage();
                }
            }

            /**
             * <pre>
             * used when you want something like "get the samples until X date/time"
             * </pre>
             *
             * <code>.context.Timestamp end_timestamp = 5;</code>
             */
            public Builder setEndTimestamp(context.ContextOuterClass.Timestamp value) {
                if (endTimestampBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    endTimestamp_ = value;
                } else {
                    endTimestampBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000010;
                onChanged();
                return this;
            }

            /**
             * <pre>
             * used when you want something like "get the samples until X date/time"
             * </pre>
             *
             * <code>.context.Timestamp end_timestamp = 5;</code>
             */
            public Builder setEndTimestamp(context.ContextOuterClass.Timestamp.Builder builderForValue) {
                if (endTimestampBuilder_ == null) {
                    endTimestamp_ = builderForValue.build();
                } else {
                    endTimestampBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000010;
                onChanged();
                return this;
            }

            /**
             * <pre>
             * used when you want something like "get the samples until X date/time"
             * </pre>
             *
             * <code>.context.Timestamp end_timestamp = 5;</code>
             */
            public Builder mergeEndTimestamp(context.ContextOuterClass.Timestamp value) {
                if (endTimestampBuilder_ == null) {
                    if (((bitField0_ & 0x00000010) != 0) && endTimestamp_ != null && endTimestamp_ != context.ContextOuterClass.Timestamp.getDefaultInstance()) {
                        getEndTimestampBuilder().mergeFrom(value);
                    } else {
                        endTimestamp_ = value;
                    }
                } else {
                    endTimestampBuilder_.mergeFrom(value);
                }
                bitField0_ |= 0x00000010;
                onChanged();
                return this;
            }

            /**
             * <pre>
             * used when you want something like "get the samples until X date/time"
             * </pre>
             *
             * <code>.context.Timestamp end_timestamp = 5;</code>
             */
            public Builder clearEndTimestamp() {
                bitField0_ = (bitField0_ & ~0x00000010);
                endTimestamp_ = null;
                if (endTimestampBuilder_ != null) {
                    endTimestampBuilder_.dispose();
                    endTimestampBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <pre>
             * used when you want something like "get the samples until X date/time"
             * </pre>
             *
             * <code>.context.Timestamp end_timestamp = 5;</code>
             */
            public context.ContextOuterClass.Timestamp.Builder getEndTimestampBuilder() {
                bitField0_ |= 0x00000010;
                onChanged();
                return getEndTimestampFieldBuilder().getBuilder();
            }

            /**
             * <pre>
             * used when you want something like "get the samples until X date/time"
             * </pre>
             *
             * <code>.context.Timestamp end_timestamp = 5;</code>
             */
            public context.ContextOuterClass.TimestampOrBuilder getEndTimestampOrBuilder() {
                if (endTimestampBuilder_ != null) {
                    return endTimestampBuilder_.getMessageOrBuilder();
                } else {
                    return endTimestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : endTimestamp_;
                }
            }

            /**
             * <pre>
             * used when you want something like "get the samples until X date/time"
             * </pre>
             *
             * <code>.context.Timestamp end_timestamp = 5;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Timestamp, context.ContextOuterClass.Timestamp.Builder, context.ContextOuterClass.TimestampOrBuilder> getEndTimestampFieldBuilder() {
                if (endTimestampBuilder_ == null) {
                    endTimestampBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Timestamp, context.ContextOuterClass.Timestamp.Builder, context.ContextOuterClass.TimestampOrBuilder>(getEndTimestamp(), getParentForChildren(), isClean());
                    endTimestamp_ = null;
                }
                return endTimestampBuilder_;
            }

            @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:monitoring.KpiQuery)
        }

        // @@protoc_insertion_point(class_scope:monitoring.KpiQuery)
        private static final monitoring.Monitoring.KpiQuery DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new monitoring.Monitoring.KpiQuery();
        }

        public static monitoring.Monitoring.KpiQuery getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

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

            @java.lang.Override
            public KpiQuery 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<KpiQuery> parser() {
            return PARSER;
        }

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

        @java.lang.Override
        public monitoring.Monitoring.KpiQuery getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    }

    public interface RawKpiOrBuilder extends // @@protoc_insertion_point(interface_extends:monitoring.RawKpi)
    com.google.protobuf.MessageOrBuilder {

        /**
         * <code>.context.Timestamp timestamp = 1;</code>
         * @return Whether the timestamp field is set.
         */
        boolean hasTimestamp();

        /**
         * <code>.context.Timestamp timestamp = 1;</code>
         * @return The timestamp.
         */
        context.ContextOuterClass.Timestamp getTimestamp();

        /**
         * <code>.context.Timestamp timestamp = 1;</code>
         */
        context.ContextOuterClass.TimestampOrBuilder getTimestampOrBuilder();

        /**
         * <code>.monitoring.KpiValue kpi_value = 2;</code>
         * @return Whether the kpiValue field is set.
         */
        boolean hasKpiValue();

        /**
         * <code>.monitoring.KpiValue kpi_value = 2;</code>
         * @return The kpiValue.
         */
        monitoring.Monitoring.KpiValue getKpiValue();

        /**
         * <code>.monitoring.KpiValue kpi_value = 2;</code>
         */
        monitoring.Monitoring.KpiValueOrBuilder getKpiValueOrBuilder();
    }

    /**
     * <pre>
     * cell
     * </pre>
     *
     * Protobuf type {@code monitoring.RawKpi}
     */
    public static final class RawKpi extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:monitoring.RawKpi)
    RawKpiOrBuilder {

        private static final long serialVersionUID = 0L;

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

        private RawKpi() {
        }

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

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return monitoring.Monitoring.internal_static_monitoring_RawKpi_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            return monitoring.Monitoring.internal_static_monitoring_RawKpi_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.RawKpi.class, monitoring.Monitoring.RawKpi.Builder.class);
        }

        public static final int TIMESTAMP_FIELD_NUMBER = 1;

        private context.ContextOuterClass.Timestamp timestamp_;

        /**
         * <code>.context.Timestamp timestamp = 1;</code>
         * @return Whether the timestamp field is set.
         */
        @java.lang.Override
        public boolean hasTimestamp() {
            return timestamp_ != null;
        }

        /**
         * <code>.context.Timestamp timestamp = 1;</code>
         * @return The timestamp.
         */
        @java.lang.Override
        public context.ContextOuterClass.Timestamp getTimestamp() {
            return timestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : timestamp_;
        }

        /**
         * <code>.context.Timestamp timestamp = 1;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.TimestampOrBuilder getTimestampOrBuilder() {
            return timestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : timestamp_;
        }

        public static final int KPI_VALUE_FIELD_NUMBER = 2;

        private monitoring.Monitoring.KpiValue kpiValue_;

        /**
         * <code>.monitoring.KpiValue kpi_value = 2;</code>
         * @return Whether the kpiValue field is set.
         */
        @java.lang.Override
        public boolean hasKpiValue() {
            return kpiValue_ != null;
        }

        /**
         * <code>.monitoring.KpiValue kpi_value = 2;</code>
         * @return The kpiValue.
         */
        @java.lang.Override
        public monitoring.Monitoring.KpiValue getKpiValue() {
            return kpiValue_ == null ? monitoring.Monitoring.KpiValue.getDefaultInstance() : kpiValue_;
        }

        /**
         * <code>.monitoring.KpiValue kpi_value = 2;</code>
         */
        @java.lang.Override
        public monitoring.Monitoring.KpiValueOrBuilder getKpiValueOrBuilder() {
            return kpiValue_ == null ? monitoring.Monitoring.KpiValue.getDefaultInstance() : kpiValue_;
        }

        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 (timestamp_ != null) {
                output.writeMessage(1, getTimestamp());
            }
            if (kpiValue_ != null) {
                output.writeMessage(2, getKpiValue());
            }
            getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;
            size = 0;
            if (timestamp_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getTimestamp());
            }
            if (kpiValue_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getKpiValue());
            }
            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 monitoring.Monitoring.RawKpi)) {
                return super.equals(obj);
            }
            monitoring.Monitoring.RawKpi other = (monitoring.Monitoring.RawKpi) obj;
            if (hasTimestamp() != other.hasTimestamp())
                return false;
            if (hasTimestamp()) {
                if (!getTimestamp().equals(other.getTimestamp()))
                    return false;
            }
            if (hasKpiValue() != other.hasKpiValue())
                return false;
            if (hasKpiValue()) {
                if (!getKpiValue().equals(other.getKpiValue()))
                    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();
            if (hasTimestamp()) {
                hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER;
                hash = (53 * hash) + getTimestamp().hashCode();
            }
            if (hasKpiValue()) {
                hash = (37 * hash) + KPI_VALUE_FIELD_NUMBER;
                hash = (53 * hash) + getKpiValue().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static monitoring.Monitoring.RawKpi parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.RawKpi parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.RawKpi parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.RawKpi parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.RawKpi parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.RawKpi parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.RawKpi parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.RawKpi 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 monitoring.Monitoring.RawKpi parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.RawKpi 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 monitoring.Monitoring.RawKpi parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.RawKpi 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(monitoring.Monitoring.RawKpi 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>
         * cell
         * </pre>
         *
         * Protobuf type {@code monitoring.RawKpi}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:monitoring.RawKpi)
        monitoring.Monitoring.RawKpiOrBuilder {

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return monitoring.Monitoring.internal_static_monitoring_RawKpi_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
                return monitoring.Monitoring.internal_static_monitoring_RawKpi_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.RawKpi.class, monitoring.Monitoring.RawKpi.Builder.class);
            }

            // Construct using monitoring.Monitoring.RawKpi.newBuilder()
            private Builder() {
            }

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

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                timestamp_ = null;
                if (timestampBuilder_ != null) {
                    timestampBuilder_.dispose();
                    timestampBuilder_ = null;
                }
                kpiValue_ = null;
                if (kpiValueBuilder_ != null) {
                    kpiValueBuilder_.dispose();
                    kpiValueBuilder_ = null;
                }
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return monitoring.Monitoring.internal_static_monitoring_RawKpi_descriptor;
            }

            @java.lang.Override
            public monitoring.Monitoring.RawKpi getDefaultInstanceForType() {
                return monitoring.Monitoring.RawKpi.getDefaultInstance();
            }

            @java.lang.Override
            public monitoring.Monitoring.RawKpi build() {
                monitoring.Monitoring.RawKpi result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public monitoring.Monitoring.RawKpi buildPartial() {
                monitoring.Monitoring.RawKpi result = new monitoring.Monitoring.RawKpi(this);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                }
                onBuilt();
                return result;
            }

            private void buildPartial0(monitoring.Monitoring.RawKpi result) {
                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    result.timestamp_ = timestampBuilder_ == null ? timestamp_ : timestampBuilder_.build();
                }
                if (((from_bitField0_ & 0x00000002) != 0)) {
                    result.kpiValue_ = kpiValueBuilder_ == null ? kpiValue_ : kpiValueBuilder_.build();
                }
            }

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

            public Builder mergeFrom(monitoring.Monitoring.RawKpi other) {
                if (other == monitoring.Monitoring.RawKpi.getDefaultInstance())
                    return this;
                if (other.hasTimestamp()) {
                    mergeTimestamp(other.getTimestamp());
                }
                if (other.hasKpiValue()) {
                    mergeKpiValue(other.getKpiValue());
                }
                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:
                                {
                                    input.readMessage(getTimestampFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000001;
                                    break;
                                }
                            // case 10
                            case 18:
                                {
                                    input.readMessage(getKpiValueFieldBuilder().getBuilder(), extensionRegistry);
                                    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 context.ContextOuterClass.Timestamp timestamp_;

            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Timestamp, context.ContextOuterClass.Timestamp.Builder, context.ContextOuterClass.TimestampOrBuilder> timestampBuilder_;

            /**
             * <code>.context.Timestamp timestamp = 1;</code>
             * @return Whether the timestamp field is set.
             */
            public boolean hasTimestamp() {
                return ((bitField0_ & 0x00000001) != 0);
            }

            /**
             * <code>.context.Timestamp timestamp = 1;</code>
             * @return The timestamp.
             */
            public context.ContextOuterClass.Timestamp getTimestamp() {
                if (timestampBuilder_ == null) {
                    return timestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : timestamp_;
                } else {
                    return timestampBuilder_.getMessage();
                }
            }

            /**
             * <code>.context.Timestamp timestamp = 1;</code>
             */
            public Builder setTimestamp(context.ContextOuterClass.Timestamp value) {
                if (timestampBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    timestamp_ = value;
                } else {
                    timestampBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.context.Timestamp timestamp = 1;</code>
             */
            public Builder setTimestamp(context.ContextOuterClass.Timestamp.Builder builderForValue) {
                if (timestampBuilder_ == null) {
                    timestamp_ = builderForValue.build();
                } else {
                    timestampBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.context.Timestamp timestamp = 1;</code>
             */
            public Builder mergeTimestamp(context.ContextOuterClass.Timestamp value) {
                if (timestampBuilder_ == null) {
                    if (((bitField0_ & 0x00000001) != 0) && timestamp_ != null && timestamp_ != context.ContextOuterClass.Timestamp.getDefaultInstance()) {
                        getTimestampBuilder().mergeFrom(value);
                    } else {
                        timestamp_ = value;
                    }
                } else {
                    timestampBuilder_.mergeFrom(value);
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.context.Timestamp timestamp = 1;</code>
             */
            public Builder clearTimestamp() {
                bitField0_ = (bitField0_ & ~0x00000001);
                timestamp_ = null;
                if (timestampBuilder_ != null) {
                    timestampBuilder_.dispose();
                    timestampBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <code>.context.Timestamp timestamp = 1;</code>
             */
            public context.ContextOuterClass.Timestamp.Builder getTimestampBuilder() {
                bitField0_ |= 0x00000001;
                onChanged();
                return getTimestampFieldBuilder().getBuilder();
            }

            /**
             * <code>.context.Timestamp timestamp = 1;</code>
             */
            public context.ContextOuterClass.TimestampOrBuilder getTimestampOrBuilder() {
                if (timestampBuilder_ != null) {
                    return timestampBuilder_.getMessageOrBuilder();
                } else {
                    return timestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : timestamp_;
                }
            }

            /**
             * <code>.context.Timestamp timestamp = 1;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Timestamp, context.ContextOuterClass.Timestamp.Builder, context.ContextOuterClass.TimestampOrBuilder> getTimestampFieldBuilder() {
                if (timestampBuilder_ == null) {
                    timestampBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Timestamp, context.ContextOuterClass.Timestamp.Builder, context.ContextOuterClass.TimestampOrBuilder>(getTimestamp(), getParentForChildren(), isClean());
                    timestamp_ = null;
                }
                return timestampBuilder_;
            }

            private monitoring.Monitoring.KpiValue kpiValue_;

            private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiValue, monitoring.Monitoring.KpiValue.Builder, monitoring.Monitoring.KpiValueOrBuilder> kpiValueBuilder_;

            /**
             * <code>.monitoring.KpiValue kpi_value = 2;</code>
             * @return Whether the kpiValue field is set.
             */
            public boolean hasKpiValue() {
                return ((bitField0_ & 0x00000002) != 0);
            }

            /**
             * <code>.monitoring.KpiValue kpi_value = 2;</code>
             * @return The kpiValue.
             */
            public monitoring.Monitoring.KpiValue getKpiValue() {
                if (kpiValueBuilder_ == null) {
                    return kpiValue_ == null ? monitoring.Monitoring.KpiValue.getDefaultInstance() : kpiValue_;
                } else {
                    return kpiValueBuilder_.getMessage();
                }
            }

            /**
             * <code>.monitoring.KpiValue kpi_value = 2;</code>
             */
            public Builder setKpiValue(monitoring.Monitoring.KpiValue value) {
                if (kpiValueBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    kpiValue_ = value;
                } else {
                    kpiValueBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiValue kpi_value = 2;</code>
             */
            public Builder setKpiValue(monitoring.Monitoring.KpiValue.Builder builderForValue) {
                if (kpiValueBuilder_ == null) {
                    kpiValue_ = builderForValue.build();
                } else {
                    kpiValueBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiValue kpi_value = 2;</code>
             */
            public Builder mergeKpiValue(monitoring.Monitoring.KpiValue value) {
                if (kpiValueBuilder_ == null) {
                    if (((bitField0_ & 0x00000002) != 0) && kpiValue_ != null && kpiValue_ != monitoring.Monitoring.KpiValue.getDefaultInstance()) {
                        getKpiValueBuilder().mergeFrom(value);
                    } else {
                        kpiValue_ = value;
                    }
                } else {
                    kpiValueBuilder_.mergeFrom(value);
                }
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiValue kpi_value = 2;</code>
             */
            public Builder clearKpiValue() {
                bitField0_ = (bitField0_ & ~0x00000002);
                kpiValue_ = null;
                if (kpiValueBuilder_ != null) {
                    kpiValueBuilder_.dispose();
                    kpiValueBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiValue kpi_value = 2;</code>
             */
            public monitoring.Monitoring.KpiValue.Builder getKpiValueBuilder() {
                bitField0_ |= 0x00000002;
                onChanged();
                return getKpiValueFieldBuilder().getBuilder();
            }

            /**
             * <code>.monitoring.KpiValue kpi_value = 2;</code>
             */
            public monitoring.Monitoring.KpiValueOrBuilder getKpiValueOrBuilder() {
                if (kpiValueBuilder_ != null) {
                    return kpiValueBuilder_.getMessageOrBuilder();
                } else {
                    return kpiValue_ == null ? monitoring.Monitoring.KpiValue.getDefaultInstance() : kpiValue_;
                }
            }

            /**
             * <code>.monitoring.KpiValue kpi_value = 2;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiValue, monitoring.Monitoring.KpiValue.Builder, monitoring.Monitoring.KpiValueOrBuilder> getKpiValueFieldBuilder() {
                if (kpiValueBuilder_ == null) {
                    kpiValueBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiValue, monitoring.Monitoring.KpiValue.Builder, monitoring.Monitoring.KpiValueOrBuilder>(getKpiValue(), getParentForChildren(), isClean());
                    kpiValue_ = null;
                }
                return kpiValueBuilder_;
            }

            @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:monitoring.RawKpi)
        }

        // @@protoc_insertion_point(class_scope:monitoring.RawKpi)
        private static final monitoring.Monitoring.RawKpi DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new monitoring.Monitoring.RawKpi();
        }

        public static monitoring.Monitoring.RawKpi getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

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

            @java.lang.Override
            public RawKpi 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<RawKpi> parser() {
            return PARSER;
        }

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

        @java.lang.Override
        public monitoring.Monitoring.RawKpi getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    }

    public interface RawKpiListOrBuilder extends // @@protoc_insertion_point(interface_extends:monitoring.RawKpiList)
    com.google.protobuf.MessageOrBuilder {

        /**
         * <code>.monitoring.KpiId kpi_id = 1;</code>
         * @return Whether the kpiId field is set.
         */
        boolean hasKpiId();

        /**
         * <code>.monitoring.KpiId kpi_id = 1;</code>
         * @return The kpiId.
         */
        monitoring.Monitoring.KpiId getKpiId();

        /**
         * <code>.monitoring.KpiId kpi_id = 1;</code>
         */
        monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder();

        /**
         * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code>
         */
        java.util.List<monitoring.Monitoring.RawKpi> getRawKpisList();

        /**
         * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code>
         */
        monitoring.Monitoring.RawKpi getRawKpis(int index);

        /**
         * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code>
         */
        int getRawKpisCount();

        /**
         * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code>
         */
        java.util.List<? extends monitoring.Monitoring.RawKpiOrBuilder> getRawKpisOrBuilderList();

        /**
         * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code>
         */
        monitoring.Monitoring.RawKpiOrBuilder getRawKpisOrBuilder(int index);
    }

    /**
     * <pre>
     * column
     * </pre>
     *
     * Protobuf type {@code monitoring.RawKpiList}
     */
    public static final class RawKpiList extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:monitoring.RawKpiList)
    RawKpiListOrBuilder {

        private static final long serialVersionUID = 0L;

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

        private RawKpiList() {
            rawKpis_ = java.util.Collections.emptyList();
        }

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

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return monitoring.Monitoring.internal_static_monitoring_RawKpiList_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            return monitoring.Monitoring.internal_static_monitoring_RawKpiList_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.RawKpiList.class, monitoring.Monitoring.RawKpiList.Builder.class);
        }

        public static final int KPI_ID_FIELD_NUMBER = 1;

        private monitoring.Monitoring.KpiId kpiId_;

        /**
         * <code>.monitoring.KpiId kpi_id = 1;</code>
         * @return Whether the kpiId field is set.
         */
        @java.lang.Override
        public boolean hasKpiId() {
            return kpiId_ != null;
        }

        /**
         * <code>.monitoring.KpiId kpi_id = 1;</code>
         * @return The kpiId.
         */
        @java.lang.Override
        public monitoring.Monitoring.KpiId getKpiId() {
            return kpiId_ == null ? monitoring.Monitoring.KpiId.getDefaultInstance() : kpiId_;
        }

        /**
         * <code>.monitoring.KpiId kpi_id = 1;</code>
         */
        @java.lang.Override
        public monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder() {
            return kpiId_ == null ? monitoring.Monitoring.KpiId.getDefaultInstance() : kpiId_;
        }

        public static final int RAW_KPIS_FIELD_NUMBER = 2;

        @SuppressWarnings("serial")
        private java.util.List<monitoring.Monitoring.RawKpi> rawKpis_;

        /**
         * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code>
         */
        @java.lang.Override
        public java.util.List<monitoring.Monitoring.RawKpi> getRawKpisList() {
            return rawKpis_;
        }

        /**
         * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code>
         */
        @java.lang.Override
        public java.util.List<? extends monitoring.Monitoring.RawKpiOrBuilder> getRawKpisOrBuilderList() {
            return rawKpis_;
        }

        /**
         * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code>
         */
        @java.lang.Override
        public int getRawKpisCount() {
            return rawKpis_.size();
        }

        /**
         * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code>
         */
        @java.lang.Override
        public monitoring.Monitoring.RawKpi getRawKpis(int index) {
            return rawKpis_.get(index);
        }

        /**
         * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code>
         */
        @java.lang.Override
        public monitoring.Monitoring.RawKpiOrBuilder getRawKpisOrBuilder(int index) {
            return rawKpis_.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 (kpiId_ != null) {
                output.writeMessage(1, getKpiId());
            }
            for (int i = 0; i < rawKpis_.size(); i++) {
                output.writeMessage(2, rawKpis_.get(i));
            }
            getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;
            size = 0;
            if (kpiId_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getKpiId());
            }
            for (int i = 0; i < rawKpis_.size(); i++) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, rawKpis_.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 monitoring.Monitoring.RawKpiList)) {
                return super.equals(obj);
            }
            monitoring.Monitoring.RawKpiList other = (monitoring.Monitoring.RawKpiList) obj;
            if (hasKpiId() != other.hasKpiId())
                return false;
            if (hasKpiId()) {
                if (!getKpiId().equals(other.getKpiId()))
                    return false;
            }
            if (!getRawKpisList().equals(other.getRawKpisList()))
                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();
            if (hasKpiId()) {
                hash = (37 * hash) + KPI_ID_FIELD_NUMBER;
                hash = (53 * hash) + getKpiId().hashCode();
            }
            if (getRawKpisCount() > 0) {
                hash = (37 * hash) + RAW_KPIS_FIELD_NUMBER;
                hash = (53 * hash) + getRawKpisList().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static monitoring.Monitoring.RawKpiList parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.RawKpiList parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.RawKpiList parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.RawKpiList parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.RawKpiList parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.RawKpiList parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.RawKpiList parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.RawKpiList 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 monitoring.Monitoring.RawKpiList parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.RawKpiList 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 monitoring.Monitoring.RawKpiList parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.RawKpiList 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(monitoring.Monitoring.RawKpiList 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>
         * column
         * </pre>
         *
         * Protobuf type {@code monitoring.RawKpiList}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:monitoring.RawKpiList)
        monitoring.Monitoring.RawKpiListOrBuilder {

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return monitoring.Monitoring.internal_static_monitoring_RawKpiList_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
                return monitoring.Monitoring.internal_static_monitoring_RawKpiList_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.RawKpiList.class, monitoring.Monitoring.RawKpiList.Builder.class);
            }

            // Construct using monitoring.Monitoring.RawKpiList.newBuilder()
            private Builder() {
            }

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

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                kpiId_ = null;
                if (kpiIdBuilder_ != null) {
                    kpiIdBuilder_.dispose();
                    kpiIdBuilder_ = null;
                }
                if (rawKpisBuilder_ == null) {
                    rawKpis_ = java.util.Collections.emptyList();
                } else {
                    rawKpis_ = null;
                    rawKpisBuilder_.clear();
                }
                bitField0_ = (bitField0_ & ~0x00000002);
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return monitoring.Monitoring.internal_static_monitoring_RawKpiList_descriptor;
            }

            @java.lang.Override
            public monitoring.Monitoring.RawKpiList getDefaultInstanceForType() {
                return monitoring.Monitoring.RawKpiList.getDefaultInstance();
            }

            @java.lang.Override
            public monitoring.Monitoring.RawKpiList build() {
                monitoring.Monitoring.RawKpiList result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

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

            private void buildPartialRepeatedFields(monitoring.Monitoring.RawKpiList result) {
                if (rawKpisBuilder_ == null) {
                    if (((bitField0_ & 0x00000002) != 0)) {
                        rawKpis_ = java.util.Collections.unmodifiableList(rawKpis_);
                        bitField0_ = (bitField0_ & ~0x00000002);
                    }
                    result.rawKpis_ = rawKpis_;
                } else {
                    result.rawKpis_ = rawKpisBuilder_.build();
                }
            }

            private void buildPartial0(monitoring.Monitoring.RawKpiList result) {
                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    result.kpiId_ = kpiIdBuilder_ == null ? kpiId_ : kpiIdBuilder_.build();
                }
            }

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

            public Builder mergeFrom(monitoring.Monitoring.RawKpiList other) {
                if (other == monitoring.Monitoring.RawKpiList.getDefaultInstance())
                    return this;
                if (other.hasKpiId()) {
                    mergeKpiId(other.getKpiId());
                }
                if (rawKpisBuilder_ == null) {
                    if (!other.rawKpis_.isEmpty()) {
                        if (rawKpis_.isEmpty()) {
                            rawKpis_ = other.rawKpis_;
                            bitField0_ = (bitField0_ & ~0x00000002);
                        } else {
                            ensureRawKpisIsMutable();
                            rawKpis_.addAll(other.rawKpis_);
                        }
                        onChanged();
                    }
                } else {
                    if (!other.rawKpis_.isEmpty()) {
                        if (rawKpisBuilder_.isEmpty()) {
                            rawKpisBuilder_.dispose();
                            rawKpisBuilder_ = null;
                            rawKpis_ = other.rawKpis_;
                            bitField0_ = (bitField0_ & ~0x00000002);
                            rawKpisBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getRawKpisFieldBuilder() : null;
                        } else {
                            rawKpisBuilder_.addAllMessages(other.rawKpis_);
                        }
                    }
                }
                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:
                                {
                                    input.readMessage(getKpiIdFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000001;
                                    break;
                                }
                            // case 10
                            case 18:
                                {
                                    monitoring.Monitoring.RawKpi m = input.readMessage(monitoring.Monitoring.RawKpi.parser(), extensionRegistry);
                                    if (rawKpisBuilder_ == null) {
                                        ensureRawKpisIsMutable();
                                        rawKpis_.add(m);
                                    } else {
                                        rawKpisBuilder_.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 monitoring.Monitoring.KpiId kpiId_;

            private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder> kpiIdBuilder_;

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             * @return Whether the kpiId field is set.
             */
            public boolean hasKpiId() {
                return ((bitField0_ & 0x00000001) != 0);
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             * @return The kpiId.
             */
            public monitoring.Monitoring.KpiId getKpiId() {
                if (kpiIdBuilder_ == null) {
                    return kpiId_ == null ? monitoring.Monitoring.KpiId.getDefaultInstance() : kpiId_;
                } else {
                    return kpiIdBuilder_.getMessage();
                }
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             */
            public Builder setKpiId(monitoring.Monitoring.KpiId value) {
                if (kpiIdBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    kpiId_ = value;
                } else {
                    kpiIdBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             */
            public Builder setKpiId(monitoring.Monitoring.KpiId.Builder builderForValue) {
                if (kpiIdBuilder_ == null) {
                    kpiId_ = builderForValue.build();
                } else {
                    kpiIdBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             */
            public Builder mergeKpiId(monitoring.Monitoring.KpiId value) {
                if (kpiIdBuilder_ == null) {
                    if (((bitField0_ & 0x00000001) != 0) && kpiId_ != null && kpiId_ != monitoring.Monitoring.KpiId.getDefaultInstance()) {
                        getKpiIdBuilder().mergeFrom(value);
                    } else {
                        kpiId_ = value;
                    }
                } else {
                    kpiIdBuilder_.mergeFrom(value);
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             */
            public Builder clearKpiId() {
                bitField0_ = (bitField0_ & ~0x00000001);
                kpiId_ = null;
                if (kpiIdBuilder_ != null) {
                    kpiIdBuilder_.dispose();
                    kpiIdBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             */
            public monitoring.Monitoring.KpiId.Builder getKpiIdBuilder() {
                bitField0_ |= 0x00000001;
                onChanged();
                return getKpiIdFieldBuilder().getBuilder();
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             */
            public monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder() {
                if (kpiIdBuilder_ != null) {
                    return kpiIdBuilder_.getMessageOrBuilder();
                } else {
                    return kpiId_ == null ? monitoring.Monitoring.KpiId.getDefaultInstance() : kpiId_;
                }
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder> getKpiIdFieldBuilder() {
                if (kpiIdBuilder_ == null) {
                    kpiIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder>(getKpiId(), getParentForChildren(), isClean());
                    kpiId_ = null;
                }
                return kpiIdBuilder_;
            }

            private java.util.List<monitoring.Monitoring.RawKpi> rawKpis_ = java.util.Collections.emptyList();

            private void ensureRawKpisIsMutable() {
                if (!((bitField0_ & 0x00000002) != 0)) {
                    rawKpis_ = new java.util.ArrayList<monitoring.Monitoring.RawKpi>(rawKpis_);
                    bitField0_ |= 0x00000002;
                }
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<monitoring.Monitoring.RawKpi, monitoring.Monitoring.RawKpi.Builder, monitoring.Monitoring.RawKpiOrBuilder> rawKpisBuilder_;

            /**
             * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code>
             */
            public java.util.List<monitoring.Monitoring.RawKpi> getRawKpisList() {
                if (rawKpisBuilder_ == null) {
                    return java.util.Collections.unmodifiableList(rawKpis_);
                } else {
                    return rawKpisBuilder_.getMessageList();
                }
            }

            /**
             * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code>
             */
            public int getRawKpisCount() {
                if (rawKpisBuilder_ == null) {
                    return rawKpis_.size();
                } else {
                    return rawKpisBuilder_.getCount();
                }
            }

            /**
             * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code>
             */
            public monitoring.Monitoring.RawKpi getRawKpis(int index) {
                if (rawKpisBuilder_ == null) {
                    return rawKpis_.get(index);
                } else {
                    return rawKpisBuilder_.getMessage(index);
                }
            }

            /**
             * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code>
             */
            public Builder setRawKpis(int index, monitoring.Monitoring.RawKpi value) {
                if (rawKpisBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureRawKpisIsMutable();
                    rawKpis_.set(index, value);
                    onChanged();
                } else {
                    rawKpisBuilder_.setMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code>
             */
            public Builder setRawKpis(int index, monitoring.Monitoring.RawKpi.Builder builderForValue) {
                if (rawKpisBuilder_ == null) {
                    ensureRawKpisIsMutable();
                    rawKpis_.set(index, builderForValue.build());
                    onChanged();
                } else {
                    rawKpisBuilder_.setMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code>
             */
            public Builder addRawKpis(monitoring.Monitoring.RawKpi value) {
                if (rawKpisBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureRawKpisIsMutable();
                    rawKpis_.add(value);
                    onChanged();
                } else {
                    rawKpisBuilder_.addMessage(value);
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code>
             */
            public Builder addRawKpis(int index, monitoring.Monitoring.RawKpi value) {
                if (rawKpisBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureRawKpisIsMutable();
                    rawKpis_.add(index, value);
                    onChanged();
                } else {
                    rawKpisBuilder_.addMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code>
             */
            public Builder addRawKpis(monitoring.Monitoring.RawKpi.Builder builderForValue) {
                if (rawKpisBuilder_ == null) {
                    ensureRawKpisIsMutable();
                    rawKpis_.add(builderForValue.build());
                    onChanged();
                } else {
                    rawKpisBuilder_.addMessage(builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code>
             */
            public Builder addRawKpis(int index, monitoring.Monitoring.RawKpi.Builder builderForValue) {
                if (rawKpisBuilder_ == null) {
                    ensureRawKpisIsMutable();
                    rawKpis_.add(index, builderForValue.build());
                    onChanged();
                } else {
                    rawKpisBuilder_.addMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code>
             */
            public Builder addAllRawKpis(java.lang.Iterable<? extends monitoring.Monitoring.RawKpi> values) {
                if (rawKpisBuilder_ == null) {
                    ensureRawKpisIsMutable();
                    com.google.protobuf.AbstractMessageLite.Builder.addAll(values, rawKpis_);
                    onChanged();
                } else {
                    rawKpisBuilder_.addAllMessages(values);
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code>
             */
            public Builder clearRawKpis() {
                if (rawKpisBuilder_ == null) {
                    rawKpis_ = java.util.Collections.emptyList();
                    bitField0_ = (bitField0_ & ~0x00000002);
                    onChanged();
                } else {
                    rawKpisBuilder_.clear();
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code>
             */
            public Builder removeRawKpis(int index) {
                if (rawKpisBuilder_ == null) {
                    ensureRawKpisIsMutable();
                    rawKpis_.remove(index);
                    onChanged();
                } else {
                    rawKpisBuilder_.remove(index);
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code>
             */
            public monitoring.Monitoring.RawKpi.Builder getRawKpisBuilder(int index) {
                return getRawKpisFieldBuilder().getBuilder(index);
            }

            /**
             * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code>
             */
            public monitoring.Monitoring.RawKpiOrBuilder getRawKpisOrBuilder(int index) {
                if (rawKpisBuilder_ == null) {
                    return rawKpis_.get(index);
                } else {
                    return rawKpisBuilder_.getMessageOrBuilder(index);
                }
            }

            /**
             * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code>
             */
            public java.util.List<? extends monitoring.Monitoring.RawKpiOrBuilder> getRawKpisOrBuilderList() {
                if (rawKpisBuilder_ != null) {
                    return rawKpisBuilder_.getMessageOrBuilderList();
                } else {
                    return java.util.Collections.unmodifiableList(rawKpis_);
                }
            }

            /**
             * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code>
             */
            public monitoring.Monitoring.RawKpi.Builder addRawKpisBuilder() {
                return getRawKpisFieldBuilder().addBuilder(monitoring.Monitoring.RawKpi.getDefaultInstance());
            }

            /**
             * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code>
             */
            public monitoring.Monitoring.RawKpi.Builder addRawKpisBuilder(int index) {
                return getRawKpisFieldBuilder().addBuilder(index, monitoring.Monitoring.RawKpi.getDefaultInstance());
            }

            /**
             * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code>
             */
            public java.util.List<monitoring.Monitoring.RawKpi.Builder> getRawKpisBuilderList() {
                return getRawKpisFieldBuilder().getBuilderList();
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<monitoring.Monitoring.RawKpi, monitoring.Monitoring.RawKpi.Builder, monitoring.Monitoring.RawKpiOrBuilder> getRawKpisFieldBuilder() {
                if (rawKpisBuilder_ == null) {
                    rawKpisBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<monitoring.Monitoring.RawKpi, monitoring.Monitoring.RawKpi.Builder, monitoring.Monitoring.RawKpiOrBuilder>(rawKpis_, ((bitField0_ & 0x00000002) != 0), getParentForChildren(), isClean());
                    rawKpis_ = null;
                }
                return rawKpisBuilder_;
            }

            @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:monitoring.RawKpiList)
        }

        // @@protoc_insertion_point(class_scope:monitoring.RawKpiList)
        private static final monitoring.Monitoring.RawKpiList DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new monitoring.Monitoring.RawKpiList();
        }

        public static monitoring.Monitoring.RawKpiList getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

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

            @java.lang.Override
            public RawKpiList 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<RawKpiList> parser() {
            return PARSER;
        }

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

        @java.lang.Override
        public monitoring.Monitoring.RawKpiList getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    }

    public interface RawKpiTableOrBuilder extends // @@protoc_insertion_point(interface_extends:monitoring.RawKpiTable)
    com.google.protobuf.MessageOrBuilder {

        /**
         * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code>
         */
        java.util.List<monitoring.Monitoring.RawKpiList> getRawKpiListsList();

        /**
         * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code>
         */
        monitoring.Monitoring.RawKpiList getRawKpiLists(int index);

        /**
         * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code>
         */
        int getRawKpiListsCount();

        /**
         * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code>
         */
        java.util.List<? extends monitoring.Monitoring.RawKpiListOrBuilder> getRawKpiListsOrBuilderList();

        /**
         * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code>
         */
        monitoring.Monitoring.RawKpiListOrBuilder getRawKpiListsOrBuilder(int index);
    }

    /**
     * <pre>
     * table
     * </pre>
     *
     * Protobuf type {@code monitoring.RawKpiTable}
     */
    public static final class RawKpiTable extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:monitoring.RawKpiTable)
    RawKpiTableOrBuilder {

        private static final long serialVersionUID = 0L;

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

        private RawKpiTable() {
            rawKpiLists_ = java.util.Collections.emptyList();
        }

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

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return monitoring.Monitoring.internal_static_monitoring_RawKpiTable_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            return monitoring.Monitoring.internal_static_monitoring_RawKpiTable_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.RawKpiTable.class, monitoring.Monitoring.RawKpiTable.Builder.class);
        }

        public static final int RAW_KPI_LISTS_FIELD_NUMBER = 1;

        @SuppressWarnings("serial")
        private java.util.List<monitoring.Monitoring.RawKpiList> rawKpiLists_;

        /**
         * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code>
         */
        @java.lang.Override
        public java.util.List<monitoring.Monitoring.RawKpiList> getRawKpiListsList() {
            return rawKpiLists_;
        }

        /**
         * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code>
         */
        @java.lang.Override
        public java.util.List<? extends monitoring.Monitoring.RawKpiListOrBuilder> getRawKpiListsOrBuilderList() {
            return rawKpiLists_;
        }

        /**
         * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code>
         */
        @java.lang.Override
        public int getRawKpiListsCount() {
            return rawKpiLists_.size();
        }

        /**
         * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code>
         */
        @java.lang.Override
        public monitoring.Monitoring.RawKpiList getRawKpiLists(int index) {
            return rawKpiLists_.get(index);
        }

        /**
         * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code>
         */
        @java.lang.Override
        public monitoring.Monitoring.RawKpiListOrBuilder getRawKpiListsOrBuilder(int index) {
            return rawKpiLists_.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 {
            for (int i = 0; i < rawKpiLists_.size(); i++) {
                output.writeMessage(1, rawKpiLists_.get(i));
            }
            getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;
            size = 0;
            for (int i = 0; i < rawKpiLists_.size(); i++) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, rawKpiLists_.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 monitoring.Monitoring.RawKpiTable)) {
                return super.equals(obj);
            }
            monitoring.Monitoring.RawKpiTable other = (monitoring.Monitoring.RawKpiTable) obj;
            if (!getRawKpiListsList().equals(other.getRawKpiListsList()))
                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();
            if (getRawKpiListsCount() > 0) {
                hash = (37 * hash) + RAW_KPI_LISTS_FIELD_NUMBER;
                hash = (53 * hash) + getRawKpiListsList().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static monitoring.Monitoring.RawKpiTable parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.RawKpiTable parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.RawKpiTable parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.RawKpiTable parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.RawKpiTable parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.RawKpiTable parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.RawKpiTable parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.RawKpiTable 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 monitoring.Monitoring.RawKpiTable parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.RawKpiTable 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 monitoring.Monitoring.RawKpiTable parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.RawKpiTable 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(monitoring.Monitoring.RawKpiTable 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>
         * table
         * </pre>
         *
         * Protobuf type {@code monitoring.RawKpiTable}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:monitoring.RawKpiTable)
        monitoring.Monitoring.RawKpiTableOrBuilder {

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return monitoring.Monitoring.internal_static_monitoring_RawKpiTable_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
                return monitoring.Monitoring.internal_static_monitoring_RawKpiTable_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.RawKpiTable.class, monitoring.Monitoring.RawKpiTable.Builder.class);
            }

            // Construct using monitoring.Monitoring.RawKpiTable.newBuilder()
            private Builder() {
            }

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

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                if (rawKpiListsBuilder_ == null) {
                    rawKpiLists_ = java.util.Collections.emptyList();
                } else {
                    rawKpiLists_ = null;
                    rawKpiListsBuilder_.clear();
                }
                bitField0_ = (bitField0_ & ~0x00000001);
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return monitoring.Monitoring.internal_static_monitoring_RawKpiTable_descriptor;
            }

            @java.lang.Override
            public monitoring.Monitoring.RawKpiTable getDefaultInstanceForType() {
                return monitoring.Monitoring.RawKpiTable.getDefaultInstance();
            }

            @java.lang.Override
            public monitoring.Monitoring.RawKpiTable build() {
                monitoring.Monitoring.RawKpiTable result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

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

            private void buildPartialRepeatedFields(monitoring.Monitoring.RawKpiTable result) {
                if (rawKpiListsBuilder_ == null) {
                    if (((bitField0_ & 0x00000001) != 0)) {
                        rawKpiLists_ = java.util.Collections.unmodifiableList(rawKpiLists_);
                        bitField0_ = (bitField0_ & ~0x00000001);
                    }
                    result.rawKpiLists_ = rawKpiLists_;
                } else {
                    result.rawKpiLists_ = rawKpiListsBuilder_.build();
                }
            }

            private void buildPartial0(monitoring.Monitoring.RawKpiTable result) {
                int from_bitField0_ = bitField0_;
            }

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

            public Builder mergeFrom(monitoring.Monitoring.RawKpiTable other) {
                if (other == monitoring.Monitoring.RawKpiTable.getDefaultInstance())
                    return this;
                if (rawKpiListsBuilder_ == null) {
                    if (!other.rawKpiLists_.isEmpty()) {
                        if (rawKpiLists_.isEmpty()) {
                            rawKpiLists_ = other.rawKpiLists_;
                            bitField0_ = (bitField0_ & ~0x00000001);
                        } else {
                            ensureRawKpiListsIsMutable();
                            rawKpiLists_.addAll(other.rawKpiLists_);
                        }
                        onChanged();
                    }
                } else {
                    if (!other.rawKpiLists_.isEmpty()) {
                        if (rawKpiListsBuilder_.isEmpty()) {
                            rawKpiListsBuilder_.dispose();
                            rawKpiListsBuilder_ = null;
                            rawKpiLists_ = other.rawKpiLists_;
                            bitField0_ = (bitField0_ & ~0x00000001);
                            rawKpiListsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getRawKpiListsFieldBuilder() : null;
                        } else {
                            rawKpiListsBuilder_.addAllMessages(other.rawKpiLists_);
                        }
                    }
                }
                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:
                                {
                                    monitoring.Monitoring.RawKpiList m = input.readMessage(monitoring.Monitoring.RawKpiList.parser(), extensionRegistry);
                                    if (rawKpiListsBuilder_ == null) {
                                        ensureRawKpiListsIsMutable();
                                        rawKpiLists_.add(m);
                                    } else {
                                        rawKpiListsBuilder_.addMessage(m);
                                    }
                                    break;
                                }
                            // case 10
                            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.util.List<monitoring.Monitoring.RawKpiList> rawKpiLists_ = java.util.Collections.emptyList();

            private void ensureRawKpiListsIsMutable() {
                if (!((bitField0_ & 0x00000001) != 0)) {
                    rawKpiLists_ = new java.util.ArrayList<monitoring.Monitoring.RawKpiList>(rawKpiLists_);
                    bitField0_ |= 0x00000001;
                }
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<monitoring.Monitoring.RawKpiList, monitoring.Monitoring.RawKpiList.Builder, monitoring.Monitoring.RawKpiListOrBuilder> rawKpiListsBuilder_;

            /**
             * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code>
             */
            public java.util.List<monitoring.Monitoring.RawKpiList> getRawKpiListsList() {
                if (rawKpiListsBuilder_ == null) {
                    return java.util.Collections.unmodifiableList(rawKpiLists_);
                } else {
                    return rawKpiListsBuilder_.getMessageList();
                }
            }

            /**
             * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code>
             */
            public int getRawKpiListsCount() {
                if (rawKpiListsBuilder_ == null) {
                    return rawKpiLists_.size();
                } else {
                    return rawKpiListsBuilder_.getCount();
                }
            }

            /**
             * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code>
             */
            public monitoring.Monitoring.RawKpiList getRawKpiLists(int index) {
                if (rawKpiListsBuilder_ == null) {
                    return rawKpiLists_.get(index);
                } else {
                    return rawKpiListsBuilder_.getMessage(index);
                }
            }

            /**
             * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code>
             */
            public Builder setRawKpiLists(int index, monitoring.Monitoring.RawKpiList value) {
                if (rawKpiListsBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureRawKpiListsIsMutable();
                    rawKpiLists_.set(index, value);
                    onChanged();
                } else {
                    rawKpiListsBuilder_.setMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code>
             */
            public Builder setRawKpiLists(int index, monitoring.Monitoring.RawKpiList.Builder builderForValue) {
                if (rawKpiListsBuilder_ == null) {
                    ensureRawKpiListsIsMutable();
                    rawKpiLists_.set(index, builderForValue.build());
                    onChanged();
                } else {
                    rawKpiListsBuilder_.setMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code>
             */
            public Builder addRawKpiLists(monitoring.Monitoring.RawKpiList value) {
                if (rawKpiListsBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureRawKpiListsIsMutable();
                    rawKpiLists_.add(value);
                    onChanged();
                } else {
                    rawKpiListsBuilder_.addMessage(value);
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code>
             */
            public Builder addRawKpiLists(int index, monitoring.Monitoring.RawKpiList value) {
                if (rawKpiListsBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureRawKpiListsIsMutable();
                    rawKpiLists_.add(index, value);
                    onChanged();
                } else {
                    rawKpiListsBuilder_.addMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code>
             */
            public Builder addRawKpiLists(monitoring.Monitoring.RawKpiList.Builder builderForValue) {
                if (rawKpiListsBuilder_ == null) {
                    ensureRawKpiListsIsMutable();
                    rawKpiLists_.add(builderForValue.build());
                    onChanged();
                } else {
                    rawKpiListsBuilder_.addMessage(builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code>
             */
            public Builder addRawKpiLists(int index, monitoring.Monitoring.RawKpiList.Builder builderForValue) {
                if (rawKpiListsBuilder_ == null) {
                    ensureRawKpiListsIsMutable();
                    rawKpiLists_.add(index, builderForValue.build());
                    onChanged();
                } else {
                    rawKpiListsBuilder_.addMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code>
             */
            public Builder addAllRawKpiLists(java.lang.Iterable<? extends monitoring.Monitoring.RawKpiList> values) {
                if (rawKpiListsBuilder_ == null) {
                    ensureRawKpiListsIsMutable();
                    com.google.protobuf.AbstractMessageLite.Builder.addAll(values, rawKpiLists_);
                    onChanged();
                } else {
                    rawKpiListsBuilder_.addAllMessages(values);
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code>
             */
            public Builder clearRawKpiLists() {
                if (rawKpiListsBuilder_ == null) {
                    rawKpiLists_ = java.util.Collections.emptyList();
                    bitField0_ = (bitField0_ & ~0x00000001);
                    onChanged();
                } else {
                    rawKpiListsBuilder_.clear();
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code>
             */
            public Builder removeRawKpiLists(int index) {
                if (rawKpiListsBuilder_ == null) {
                    ensureRawKpiListsIsMutable();
                    rawKpiLists_.remove(index);
                    onChanged();
                } else {
                    rawKpiListsBuilder_.remove(index);
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code>
             */
            public monitoring.Monitoring.RawKpiList.Builder getRawKpiListsBuilder(int index) {
                return getRawKpiListsFieldBuilder().getBuilder(index);
            }

            /**
             * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code>
             */
            public monitoring.Monitoring.RawKpiListOrBuilder getRawKpiListsOrBuilder(int index) {
                if (rawKpiListsBuilder_ == null) {
                    return rawKpiLists_.get(index);
                } else {
                    return rawKpiListsBuilder_.getMessageOrBuilder(index);
                }
            }

            /**
             * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code>
             */
            public java.util.List<? extends monitoring.Monitoring.RawKpiListOrBuilder> getRawKpiListsOrBuilderList() {
                if (rawKpiListsBuilder_ != null) {
                    return rawKpiListsBuilder_.getMessageOrBuilderList();
                } else {
                    return java.util.Collections.unmodifiableList(rawKpiLists_);
                }
            }

            /**
             * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code>
             */
            public monitoring.Monitoring.RawKpiList.Builder addRawKpiListsBuilder() {
                return getRawKpiListsFieldBuilder().addBuilder(monitoring.Monitoring.RawKpiList.getDefaultInstance());
            }

            /**
             * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code>
             */
            public monitoring.Monitoring.RawKpiList.Builder addRawKpiListsBuilder(int index) {
                return getRawKpiListsFieldBuilder().addBuilder(index, monitoring.Monitoring.RawKpiList.getDefaultInstance());
            }

            /**
             * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code>
             */
            public java.util.List<monitoring.Monitoring.RawKpiList.Builder> getRawKpiListsBuilderList() {
                return getRawKpiListsFieldBuilder().getBuilderList();
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<monitoring.Monitoring.RawKpiList, monitoring.Monitoring.RawKpiList.Builder, monitoring.Monitoring.RawKpiListOrBuilder> getRawKpiListsFieldBuilder() {
                if (rawKpiListsBuilder_ == null) {
                    rawKpiListsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<monitoring.Monitoring.RawKpiList, monitoring.Monitoring.RawKpiList.Builder, monitoring.Monitoring.RawKpiListOrBuilder>(rawKpiLists_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean());
                    rawKpiLists_ = null;
                }
                return rawKpiListsBuilder_;
            }

            @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:monitoring.RawKpiTable)
        }

        // @@protoc_insertion_point(class_scope:monitoring.RawKpiTable)
        private static final monitoring.Monitoring.RawKpiTable DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new monitoring.Monitoring.RawKpiTable();
        }

        public static monitoring.Monitoring.RawKpiTable getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

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

            @java.lang.Override
            public RawKpiTable 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<RawKpiTable> parser() {
            return PARSER;
        }

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

        @java.lang.Override
        public monitoring.Monitoring.RawKpiTable getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    }

    public interface KpiIdOrBuilder extends // @@protoc_insertion_point(interface_extends:monitoring.KpiId)
    com.google.protobuf.MessageOrBuilder {

        /**
         * <code>.context.Uuid kpi_id = 1;</code>
         * @return Whether the kpiId field is set.
         */
        boolean hasKpiId();

        /**
         * <code>.context.Uuid kpi_id = 1;</code>
         * @return The kpiId.
         */
        context.ContextOuterClass.Uuid getKpiId();

        /**
         * <code>.context.Uuid kpi_id = 1;</code>
         */
        context.ContextOuterClass.UuidOrBuilder getKpiIdOrBuilder();
    }

    /**
     * Protobuf type {@code monitoring.KpiId}
     */
    public static final class KpiId extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:monitoring.KpiId)
    KpiIdOrBuilder {

        private static final long serialVersionUID = 0L;

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

        private KpiId() {
        }

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

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return monitoring.Monitoring.internal_static_monitoring_KpiId_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            return monitoring.Monitoring.internal_static_monitoring_KpiId_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.KpiId.class, monitoring.Monitoring.KpiId.Builder.class);
        }

        public static final int KPI_ID_FIELD_NUMBER = 1;

        private context.ContextOuterClass.Uuid kpiId_;

        /**
         * <code>.context.Uuid kpi_id = 1;</code>
         * @return Whether the kpiId field is set.
         */
        @java.lang.Override
        public boolean hasKpiId() {
            return kpiId_ != null;
        }

        /**
         * <code>.context.Uuid kpi_id = 1;</code>
         * @return The kpiId.
         */
        @java.lang.Override
        public context.ContextOuterClass.Uuid getKpiId() {
            return kpiId_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : kpiId_;
        }

        /**
         * <code>.context.Uuid kpi_id = 1;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.UuidOrBuilder getKpiIdOrBuilder() {
            return kpiId_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : kpiId_;
        }

        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 (kpiId_ != null) {
                output.writeMessage(1, getKpiId());
            }
            getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;
            size = 0;
            if (kpiId_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getKpiId());
            }
            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 monitoring.Monitoring.KpiId)) {
                return super.equals(obj);
            }
            monitoring.Monitoring.KpiId other = (monitoring.Monitoring.KpiId) obj;
            if (hasKpiId() != other.hasKpiId())
                return false;
            if (hasKpiId()) {
                if (!getKpiId().equals(other.getKpiId()))
                    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();
            if (hasKpiId()) {
                hash = (37 * hash) + KPI_ID_FIELD_NUMBER;
                hash = (53 * hash) + getKpiId().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static monitoring.Monitoring.KpiId parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.KpiId parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.KpiId parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.KpiId parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.KpiId parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.KpiId parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.KpiId parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.KpiId 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 monitoring.Monitoring.KpiId parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.KpiId 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 monitoring.Monitoring.KpiId parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.KpiId 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(monitoring.Monitoring.KpiId 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;
        }

        /**
         * Protobuf type {@code monitoring.KpiId}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:monitoring.KpiId)
        monitoring.Monitoring.KpiIdOrBuilder {

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return monitoring.Monitoring.internal_static_monitoring_KpiId_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
                return monitoring.Monitoring.internal_static_monitoring_KpiId_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.KpiId.class, monitoring.Monitoring.KpiId.Builder.class);
            }

            // Construct using monitoring.Monitoring.KpiId.newBuilder()
            private Builder() {
            }

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

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                kpiId_ = null;
                if (kpiIdBuilder_ != null) {
                    kpiIdBuilder_.dispose();
                    kpiIdBuilder_ = null;
                }
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return monitoring.Monitoring.internal_static_monitoring_KpiId_descriptor;
            }

            @java.lang.Override
            public monitoring.Monitoring.KpiId getDefaultInstanceForType() {
                return monitoring.Monitoring.KpiId.getDefaultInstance();
            }

            @java.lang.Override
            public monitoring.Monitoring.KpiId build() {
                monitoring.Monitoring.KpiId result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public monitoring.Monitoring.KpiId buildPartial() {
                monitoring.Monitoring.KpiId result = new monitoring.Monitoring.KpiId(this);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                }
                onBuilt();
                return result;
            }

            private void buildPartial0(monitoring.Monitoring.KpiId result) {
                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    result.kpiId_ = kpiIdBuilder_ == null ? kpiId_ : kpiIdBuilder_.build();
                }
            }

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

            public Builder mergeFrom(monitoring.Monitoring.KpiId other) {
                if (other == monitoring.Monitoring.KpiId.getDefaultInstance())
                    return this;
                if (other.hasKpiId()) {
                    mergeKpiId(other.getKpiId());
                }
                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:
                                {
                                    input.readMessage(getKpiIdFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000001;
                                    break;
                                }
                            // case 10
                            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 context.ContextOuterClass.Uuid kpiId_;

            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> kpiIdBuilder_;

            /**
             * <code>.context.Uuid kpi_id = 1;</code>
             * @return Whether the kpiId field is set.
             */
            public boolean hasKpiId() {
                return ((bitField0_ & 0x00000001) != 0);
            }

            /**
             * <code>.context.Uuid kpi_id = 1;</code>
             * @return The kpiId.
             */
            public context.ContextOuterClass.Uuid getKpiId() {
                if (kpiIdBuilder_ == null) {
                    return kpiId_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : kpiId_;
                } else {
                    return kpiIdBuilder_.getMessage();
                }
            }

            /**
             * <code>.context.Uuid kpi_id = 1;</code>
             */
            public Builder setKpiId(context.ContextOuterClass.Uuid value) {
                if (kpiIdBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    kpiId_ = value;
                } else {
                    kpiIdBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.context.Uuid kpi_id = 1;</code>
             */
            public Builder setKpiId(context.ContextOuterClass.Uuid.Builder builderForValue) {
                if (kpiIdBuilder_ == null) {
                    kpiId_ = builderForValue.build();
                } else {
                    kpiIdBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.context.Uuid kpi_id = 1;</code>
             */
            public Builder mergeKpiId(context.ContextOuterClass.Uuid value) {
                if (kpiIdBuilder_ == null) {
                    if (((bitField0_ & 0x00000001) != 0) && kpiId_ != null && kpiId_ != context.ContextOuterClass.Uuid.getDefaultInstance()) {
                        getKpiIdBuilder().mergeFrom(value);
                    } else {
                        kpiId_ = value;
                    }
                } else {
                    kpiIdBuilder_.mergeFrom(value);
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.context.Uuid kpi_id = 1;</code>
             */
            public Builder clearKpiId() {
                bitField0_ = (bitField0_ & ~0x00000001);
                kpiId_ = null;
                if (kpiIdBuilder_ != null) {
                    kpiIdBuilder_.dispose();
                    kpiIdBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <code>.context.Uuid kpi_id = 1;</code>
             */
            public context.ContextOuterClass.Uuid.Builder getKpiIdBuilder() {
                bitField0_ |= 0x00000001;
                onChanged();
                return getKpiIdFieldBuilder().getBuilder();
            }

            /**
             * <code>.context.Uuid kpi_id = 1;</code>
             */
            public context.ContextOuterClass.UuidOrBuilder getKpiIdOrBuilder() {
                if (kpiIdBuilder_ != null) {
                    return kpiIdBuilder_.getMessageOrBuilder();
                } else {
                    return kpiId_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : kpiId_;
                }
            }

            /**
             * <code>.context.Uuid kpi_id = 1;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> getKpiIdFieldBuilder() {
                if (kpiIdBuilder_ == null) {
                    kpiIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder>(getKpiId(), getParentForChildren(), isClean());
                    kpiId_ = null;
                }
                return kpiIdBuilder_;
            }

            @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:monitoring.KpiId)
        }

        // @@protoc_insertion_point(class_scope:monitoring.KpiId)
        private static final monitoring.Monitoring.KpiId DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new monitoring.Monitoring.KpiId();
        }

        public static monitoring.Monitoring.KpiId getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

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

            @java.lang.Override
            public KpiId 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<KpiId> parser() {
            return PARSER;
        }

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

        @java.lang.Override
        public monitoring.Monitoring.KpiId getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    }

    public interface KpiOrBuilder extends // @@protoc_insertion_point(interface_extends:monitoring.Kpi)
    com.google.protobuf.MessageOrBuilder {

        /**
         * <code>.monitoring.KpiId kpi_id = 1;</code>
         * @return Whether the kpiId field is set.
         */
        boolean hasKpiId();

        /**
         * <code>.monitoring.KpiId kpi_id = 1;</code>
         * @return The kpiId.
         */
        monitoring.Monitoring.KpiId getKpiId();

        /**
         * <code>.monitoring.KpiId kpi_id = 1;</code>
         */
        monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder();

        /**
         * <code>.context.Timestamp timestamp = 2;</code>
         * @return Whether the timestamp field is set.
         */
        boolean hasTimestamp();

        /**
         * <code>.context.Timestamp timestamp = 2;</code>
         * @return The timestamp.
         */
        context.ContextOuterClass.Timestamp getTimestamp();

        /**
         * <code>.context.Timestamp timestamp = 2;</code>
         */
        context.ContextOuterClass.TimestampOrBuilder getTimestampOrBuilder();

        /**
         * <code>.monitoring.KpiValue kpi_value = 3;</code>
         * @return Whether the kpiValue field is set.
         */
        boolean hasKpiValue();

        /**
         * <code>.monitoring.KpiValue kpi_value = 3;</code>
         * @return The kpiValue.
         */
        monitoring.Monitoring.KpiValue getKpiValue();

        /**
         * <code>.monitoring.KpiValue kpi_value = 3;</code>
         */
        monitoring.Monitoring.KpiValueOrBuilder getKpiValueOrBuilder();
    }

    /**
     * Protobuf type {@code monitoring.Kpi}
     */
    public static final class Kpi extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:monitoring.Kpi)
    KpiOrBuilder {

        private static final long serialVersionUID = 0L;

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

        private Kpi() {
        }

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

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return monitoring.Monitoring.internal_static_monitoring_Kpi_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            return monitoring.Monitoring.internal_static_monitoring_Kpi_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.Kpi.class, monitoring.Monitoring.Kpi.Builder.class);
        }

        public static final int KPI_ID_FIELD_NUMBER = 1;

        private monitoring.Monitoring.KpiId kpiId_;

        /**
         * <code>.monitoring.KpiId kpi_id = 1;</code>
         * @return Whether the kpiId field is set.
         */
        @java.lang.Override
        public boolean hasKpiId() {
            return kpiId_ != null;
        }

        /**
         * <code>.monitoring.KpiId kpi_id = 1;</code>
         * @return The kpiId.
         */
        @java.lang.Override
        public monitoring.Monitoring.KpiId getKpiId() {
            return kpiId_ == null ? monitoring.Monitoring.KpiId.getDefaultInstance() : kpiId_;
        }

        /**
         * <code>.monitoring.KpiId kpi_id = 1;</code>
         */
        @java.lang.Override
        public monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder() {
            return kpiId_ == null ? monitoring.Monitoring.KpiId.getDefaultInstance() : kpiId_;
        }

        public static final int TIMESTAMP_FIELD_NUMBER = 2;

        private context.ContextOuterClass.Timestamp timestamp_;

        /**
         * <code>.context.Timestamp timestamp = 2;</code>
         * @return Whether the timestamp field is set.
         */
        @java.lang.Override
        public boolean hasTimestamp() {
            return timestamp_ != null;
        }

        /**
         * <code>.context.Timestamp timestamp = 2;</code>
         * @return The timestamp.
         */
        @java.lang.Override
        public context.ContextOuterClass.Timestamp getTimestamp() {
            return timestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : timestamp_;
        }

        /**
         * <code>.context.Timestamp timestamp = 2;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.TimestampOrBuilder getTimestampOrBuilder() {
            return timestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : timestamp_;
        }

        public static final int KPI_VALUE_FIELD_NUMBER = 3;

        private monitoring.Monitoring.KpiValue kpiValue_;

        /**
         * <code>.monitoring.KpiValue kpi_value = 3;</code>
         * @return Whether the kpiValue field is set.
         */
        @java.lang.Override
        public boolean hasKpiValue() {
            return kpiValue_ != null;
        }

        /**
         * <code>.monitoring.KpiValue kpi_value = 3;</code>
         * @return The kpiValue.
         */
        @java.lang.Override
        public monitoring.Monitoring.KpiValue getKpiValue() {
            return kpiValue_ == null ? monitoring.Monitoring.KpiValue.getDefaultInstance() : kpiValue_;
        }

        /**
         * <code>.monitoring.KpiValue kpi_value = 3;</code>
         */
        @java.lang.Override
        public monitoring.Monitoring.KpiValueOrBuilder getKpiValueOrBuilder() {
            return kpiValue_ == null ? monitoring.Monitoring.KpiValue.getDefaultInstance() : kpiValue_;
        }

        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 (kpiId_ != null) {
                output.writeMessage(1, getKpiId());
            }
            if (timestamp_ != null) {
                output.writeMessage(2, getTimestamp());
            }
            if (kpiValue_ != null) {
                output.writeMessage(3, getKpiValue());
            }
            getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;
            size = 0;
            if (kpiId_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getKpiId());
            }
            if (timestamp_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getTimestamp());
            }
            if (kpiValue_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getKpiValue());
            }
            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 monitoring.Monitoring.Kpi)) {
                return super.equals(obj);
            }
            monitoring.Monitoring.Kpi other = (monitoring.Monitoring.Kpi) obj;
            if (hasKpiId() != other.hasKpiId())
                return false;
            if (hasKpiId()) {
                if (!getKpiId().equals(other.getKpiId()))
                    return false;
            }
            if (hasTimestamp() != other.hasTimestamp())
                return false;
            if (hasTimestamp()) {
                if (!getTimestamp().equals(other.getTimestamp()))
                    return false;
            }
            if (hasKpiValue() != other.hasKpiValue())
                return false;
            if (hasKpiValue()) {
                if (!getKpiValue().equals(other.getKpiValue()))
                    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();
            if (hasKpiId()) {
                hash = (37 * hash) + KPI_ID_FIELD_NUMBER;
                hash = (53 * hash) + getKpiId().hashCode();
            }
            if (hasTimestamp()) {
                hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER;
                hash = (53 * hash) + getTimestamp().hashCode();
            }
            if (hasKpiValue()) {
                hash = (37 * hash) + KPI_VALUE_FIELD_NUMBER;
                hash = (53 * hash) + getKpiValue().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static monitoring.Monitoring.Kpi parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.Kpi parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.Kpi parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.Kpi parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.Kpi parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.Kpi parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.Kpi parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.Kpi 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 monitoring.Monitoring.Kpi parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.Kpi 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 monitoring.Monitoring.Kpi parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.Kpi 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(monitoring.Monitoring.Kpi 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;
        }

        /**
         * Protobuf type {@code monitoring.Kpi}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:monitoring.Kpi)
        monitoring.Monitoring.KpiOrBuilder {

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return monitoring.Monitoring.internal_static_monitoring_Kpi_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
                return monitoring.Monitoring.internal_static_monitoring_Kpi_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.Kpi.class, monitoring.Monitoring.Kpi.Builder.class);
            }

            // Construct using monitoring.Monitoring.Kpi.newBuilder()
            private Builder() {
            }

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

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                kpiId_ = null;
                if (kpiIdBuilder_ != null) {
                    kpiIdBuilder_.dispose();
                    kpiIdBuilder_ = null;
                }
                timestamp_ = null;
                if (timestampBuilder_ != null) {
                    timestampBuilder_.dispose();
                    timestampBuilder_ = null;
                }
                kpiValue_ = null;
                if (kpiValueBuilder_ != null) {
                    kpiValueBuilder_.dispose();
                    kpiValueBuilder_ = null;
                }
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return monitoring.Monitoring.internal_static_monitoring_Kpi_descriptor;
            }

            @java.lang.Override
            public monitoring.Monitoring.Kpi getDefaultInstanceForType() {
                return monitoring.Monitoring.Kpi.getDefaultInstance();
            }

            @java.lang.Override
            public monitoring.Monitoring.Kpi build() {
                monitoring.Monitoring.Kpi result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public monitoring.Monitoring.Kpi buildPartial() {
                monitoring.Monitoring.Kpi result = new monitoring.Monitoring.Kpi(this);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                }
                onBuilt();
                return result;
            }

            private void buildPartial0(monitoring.Monitoring.Kpi result) {
                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    result.kpiId_ = kpiIdBuilder_ == null ? kpiId_ : kpiIdBuilder_.build();
                }
                if (((from_bitField0_ & 0x00000002) != 0)) {
                    result.timestamp_ = timestampBuilder_ == null ? timestamp_ : timestampBuilder_.build();
                }
                if (((from_bitField0_ & 0x00000004) != 0)) {
                    result.kpiValue_ = kpiValueBuilder_ == null ? kpiValue_ : kpiValueBuilder_.build();
                }
            }

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

            public Builder mergeFrom(monitoring.Monitoring.Kpi other) {
                if (other == monitoring.Monitoring.Kpi.getDefaultInstance())
                    return this;
                if (other.hasKpiId()) {
                    mergeKpiId(other.getKpiId());
                }
                if (other.hasTimestamp()) {
                    mergeTimestamp(other.getTimestamp());
                }
                if (other.hasKpiValue()) {
                    mergeKpiValue(other.getKpiValue());
                }
                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:
                                {
                                    input.readMessage(getKpiIdFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000001;
                                    break;
                                }
                            // case 10
                            case 18:
                                {
                                    input.readMessage(getTimestampFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000002;
                                    break;
                                }
                            // case 18
                            case 26:
                                {
                                    input.readMessage(getKpiValueFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000004;
                                    break;
                                }
                            // case 26
                            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 monitoring.Monitoring.KpiId kpiId_;

            private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder> kpiIdBuilder_;

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             * @return Whether the kpiId field is set.
             */
            public boolean hasKpiId() {
                return ((bitField0_ & 0x00000001) != 0);
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             * @return The kpiId.
             */
            public monitoring.Monitoring.KpiId getKpiId() {
                if (kpiIdBuilder_ == null) {
                    return kpiId_ == null ? monitoring.Monitoring.KpiId.getDefaultInstance() : kpiId_;
                } else {
                    return kpiIdBuilder_.getMessage();
                }
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             */
            public Builder setKpiId(monitoring.Monitoring.KpiId value) {
                if (kpiIdBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    kpiId_ = value;
                } else {
                    kpiIdBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             */
            public Builder setKpiId(monitoring.Monitoring.KpiId.Builder builderForValue) {
                if (kpiIdBuilder_ == null) {
                    kpiId_ = builderForValue.build();
                } else {
                    kpiIdBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             */
            public Builder mergeKpiId(monitoring.Monitoring.KpiId value) {
                if (kpiIdBuilder_ == null) {
                    if (((bitField0_ & 0x00000001) != 0) && kpiId_ != null && kpiId_ != monitoring.Monitoring.KpiId.getDefaultInstance()) {
                        getKpiIdBuilder().mergeFrom(value);
                    } else {
                        kpiId_ = value;
                    }
                } else {
                    kpiIdBuilder_.mergeFrom(value);
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             */
            public Builder clearKpiId() {
                bitField0_ = (bitField0_ & ~0x00000001);
                kpiId_ = null;
                if (kpiIdBuilder_ != null) {
                    kpiIdBuilder_.dispose();
                    kpiIdBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             */
            public monitoring.Monitoring.KpiId.Builder getKpiIdBuilder() {
                bitField0_ |= 0x00000001;
                onChanged();
                return getKpiIdFieldBuilder().getBuilder();
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             */
            public monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder() {
                if (kpiIdBuilder_ != null) {
                    return kpiIdBuilder_.getMessageOrBuilder();
                } else {
                    return kpiId_ == null ? monitoring.Monitoring.KpiId.getDefaultInstance() : kpiId_;
                }
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 1;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder> getKpiIdFieldBuilder() {
                if (kpiIdBuilder_ == null) {
                    kpiIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder>(getKpiId(), getParentForChildren(), isClean());
                    kpiId_ = null;
                }
                return kpiIdBuilder_;
            }

            private context.ContextOuterClass.Timestamp timestamp_;

            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Timestamp, context.ContextOuterClass.Timestamp.Builder, context.ContextOuterClass.TimestampOrBuilder> timestampBuilder_;

            /**
             * <code>.context.Timestamp timestamp = 2;</code>
             * @return Whether the timestamp field is set.
             */
            public boolean hasTimestamp() {
                return ((bitField0_ & 0x00000002) != 0);
            }

            /**
             * <code>.context.Timestamp timestamp = 2;</code>
             * @return The timestamp.
             */
            public context.ContextOuterClass.Timestamp getTimestamp() {
                if (timestampBuilder_ == null) {
                    return timestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : timestamp_;
                } else {
                    return timestampBuilder_.getMessage();
                }
            }

            /**
             * <code>.context.Timestamp timestamp = 2;</code>
             */
            public Builder setTimestamp(context.ContextOuterClass.Timestamp value) {
                if (timestampBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    timestamp_ = value;
                } else {
                    timestampBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>.context.Timestamp timestamp = 2;</code>
             */
            public Builder setTimestamp(context.ContextOuterClass.Timestamp.Builder builderForValue) {
                if (timestampBuilder_ == null) {
                    timestamp_ = builderForValue.build();
                } else {
                    timestampBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>.context.Timestamp timestamp = 2;</code>
             */
            public Builder mergeTimestamp(context.ContextOuterClass.Timestamp value) {
                if (timestampBuilder_ == null) {
                    if (((bitField0_ & 0x00000002) != 0) && timestamp_ != null && timestamp_ != context.ContextOuterClass.Timestamp.getDefaultInstance()) {
                        getTimestampBuilder().mergeFrom(value);
                    } else {
                        timestamp_ = value;
                    }
                } else {
                    timestampBuilder_.mergeFrom(value);
                }
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>.context.Timestamp timestamp = 2;</code>
             */
            public Builder clearTimestamp() {
                bitField0_ = (bitField0_ & ~0x00000002);
                timestamp_ = null;
                if (timestampBuilder_ != null) {
                    timestampBuilder_.dispose();
                    timestampBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <code>.context.Timestamp timestamp = 2;</code>
             */
            public context.ContextOuterClass.Timestamp.Builder getTimestampBuilder() {
                bitField0_ |= 0x00000002;
                onChanged();
                return getTimestampFieldBuilder().getBuilder();
            }

            /**
             * <code>.context.Timestamp timestamp = 2;</code>
             */
            public context.ContextOuterClass.TimestampOrBuilder getTimestampOrBuilder() {
                if (timestampBuilder_ != null) {
                    return timestampBuilder_.getMessageOrBuilder();
                } else {
                    return timestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : timestamp_;
                }
            }

            /**
             * <code>.context.Timestamp timestamp = 2;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Timestamp, context.ContextOuterClass.Timestamp.Builder, context.ContextOuterClass.TimestampOrBuilder> getTimestampFieldBuilder() {
                if (timestampBuilder_ == null) {
                    timestampBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Timestamp, context.ContextOuterClass.Timestamp.Builder, context.ContextOuterClass.TimestampOrBuilder>(getTimestamp(), getParentForChildren(), isClean());
                    timestamp_ = null;
                }
                return timestampBuilder_;
            }

            private monitoring.Monitoring.KpiValue kpiValue_;

            private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiValue, monitoring.Monitoring.KpiValue.Builder, monitoring.Monitoring.KpiValueOrBuilder> kpiValueBuilder_;

            /**
             * <code>.monitoring.KpiValue kpi_value = 3;</code>
             * @return Whether the kpiValue field is set.
             */
            public boolean hasKpiValue() {
                return ((bitField0_ & 0x00000004) != 0);
            }

            /**
             * <code>.monitoring.KpiValue kpi_value = 3;</code>
             * @return The kpiValue.
             */
            public monitoring.Monitoring.KpiValue getKpiValue() {
                if (kpiValueBuilder_ == null) {
                    return kpiValue_ == null ? monitoring.Monitoring.KpiValue.getDefaultInstance() : kpiValue_;
                } else {
                    return kpiValueBuilder_.getMessage();
                }
            }

            /**
             * <code>.monitoring.KpiValue kpi_value = 3;</code>
             */
            public Builder setKpiValue(monitoring.Monitoring.KpiValue value) {
                if (kpiValueBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    kpiValue_ = value;
                } else {
                    kpiValueBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000004;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiValue kpi_value = 3;</code>
             */
            public Builder setKpiValue(monitoring.Monitoring.KpiValue.Builder builderForValue) {
                if (kpiValueBuilder_ == null) {
                    kpiValue_ = builderForValue.build();
                } else {
                    kpiValueBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000004;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiValue kpi_value = 3;</code>
             */
            public Builder mergeKpiValue(monitoring.Monitoring.KpiValue value) {
                if (kpiValueBuilder_ == null) {
                    if (((bitField0_ & 0x00000004) != 0) && kpiValue_ != null && kpiValue_ != monitoring.Monitoring.KpiValue.getDefaultInstance()) {
                        getKpiValueBuilder().mergeFrom(value);
                    } else {
                        kpiValue_ = value;
                    }
                } else {
                    kpiValueBuilder_.mergeFrom(value);
                }
                bitField0_ |= 0x00000004;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiValue kpi_value = 3;</code>
             */
            public Builder clearKpiValue() {
                bitField0_ = (bitField0_ & ~0x00000004);
                kpiValue_ = null;
                if (kpiValueBuilder_ != null) {
                    kpiValueBuilder_.dispose();
                    kpiValueBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiValue kpi_value = 3;</code>
             */
            public monitoring.Monitoring.KpiValue.Builder getKpiValueBuilder() {
                bitField0_ |= 0x00000004;
                onChanged();
                return getKpiValueFieldBuilder().getBuilder();
            }

            /**
             * <code>.monitoring.KpiValue kpi_value = 3;</code>
             */
            public monitoring.Monitoring.KpiValueOrBuilder getKpiValueOrBuilder() {
                if (kpiValueBuilder_ != null) {
                    return kpiValueBuilder_.getMessageOrBuilder();
                } else {
                    return kpiValue_ == null ? monitoring.Monitoring.KpiValue.getDefaultInstance() : kpiValue_;
                }
            }

            /**
             * <code>.monitoring.KpiValue kpi_value = 3;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiValue, monitoring.Monitoring.KpiValue.Builder, monitoring.Monitoring.KpiValueOrBuilder> getKpiValueFieldBuilder() {
                if (kpiValueBuilder_ == null) {
                    kpiValueBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiValue, monitoring.Monitoring.KpiValue.Builder, monitoring.Monitoring.KpiValueOrBuilder>(getKpiValue(), getParentForChildren(), isClean());
                    kpiValue_ = null;
                }
                return kpiValueBuilder_;
            }

            @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:monitoring.Kpi)
        }

        // @@protoc_insertion_point(class_scope:monitoring.Kpi)
        private static final monitoring.Monitoring.Kpi DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new monitoring.Monitoring.Kpi();
        }

        public static monitoring.Monitoring.Kpi getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

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

            @java.lang.Override
            public Kpi 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<Kpi> parser() {
            return PARSER;
        }

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

        @java.lang.Override
        public monitoring.Monitoring.Kpi getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    }

    public interface KpiValueRangeOrBuilder extends // @@protoc_insertion_point(interface_extends:monitoring.KpiValueRange)
    com.google.protobuf.MessageOrBuilder {

        /**
         * <code>.monitoring.KpiValue kpiMinValue = 1;</code>
         * @return Whether the kpiMinValue field is set.
         */
        boolean hasKpiMinValue();

        /**
         * <code>.monitoring.KpiValue kpiMinValue = 1;</code>
         * @return The kpiMinValue.
         */
        monitoring.Monitoring.KpiValue getKpiMinValue();

        /**
         * <code>.monitoring.KpiValue kpiMinValue = 1;</code>
         */
        monitoring.Monitoring.KpiValueOrBuilder getKpiMinValueOrBuilder();

        /**
         * <code>.monitoring.KpiValue kpiMaxValue = 2;</code>
         * @return Whether the kpiMaxValue field is set.
         */
        boolean hasKpiMaxValue();

        /**
         * <code>.monitoring.KpiValue kpiMaxValue = 2;</code>
         * @return The kpiMaxValue.
         */
        monitoring.Monitoring.KpiValue getKpiMaxValue();

        /**
         * <code>.monitoring.KpiValue kpiMaxValue = 2;</code>
         */
        monitoring.Monitoring.KpiValueOrBuilder getKpiMaxValueOrBuilder();

        /**
         * <pre>
         * by default True
         * </pre>
         *
         * <code>bool inRange = 3;</code>
         * @return The inRange.
         */
        boolean getInRange();

        /**
         * <pre>
         * False is outside the interval
         * </pre>
         *
         * <code>bool includeMinValue = 4;</code>
         * @return The includeMinValue.
         */
        boolean getIncludeMinValue();

        /**
         * <pre>
         * False is outside the interval
         * </pre>
         *
         * <code>bool includeMaxValue = 5;</code>
         * @return The includeMaxValue.
         */
        boolean getIncludeMaxValue();
    }

    /**
     * Protobuf type {@code monitoring.KpiValueRange}
     */
    public static final class KpiValueRange extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:monitoring.KpiValueRange)
    KpiValueRangeOrBuilder {

        private static final long serialVersionUID = 0L;

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

        private KpiValueRange() {
        }

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

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return monitoring.Monitoring.internal_static_monitoring_KpiValueRange_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            return monitoring.Monitoring.internal_static_monitoring_KpiValueRange_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.KpiValueRange.class, monitoring.Monitoring.KpiValueRange.Builder.class);
        }

        public static final int KPIMINVALUE_FIELD_NUMBER = 1;

        private monitoring.Monitoring.KpiValue kpiMinValue_;

        /**
         * <code>.monitoring.KpiValue kpiMinValue = 1;</code>
         * @return Whether the kpiMinValue field is set.
         */
        @java.lang.Override
        public boolean hasKpiMinValue() {
            return kpiMinValue_ != null;
        }

        /**
         * <code>.monitoring.KpiValue kpiMinValue = 1;</code>
         * @return The kpiMinValue.
         */
        @java.lang.Override
        public monitoring.Monitoring.KpiValue getKpiMinValue() {
            return kpiMinValue_ == null ? monitoring.Monitoring.KpiValue.getDefaultInstance() : kpiMinValue_;
        }

        /**
         * <code>.monitoring.KpiValue kpiMinValue = 1;</code>
         */
        @java.lang.Override
        public monitoring.Monitoring.KpiValueOrBuilder getKpiMinValueOrBuilder() {
            return kpiMinValue_ == null ? monitoring.Monitoring.KpiValue.getDefaultInstance() : kpiMinValue_;
        }

        public static final int KPIMAXVALUE_FIELD_NUMBER = 2;

        private monitoring.Monitoring.KpiValue kpiMaxValue_;

        /**
         * <code>.monitoring.KpiValue kpiMaxValue = 2;</code>
         * @return Whether the kpiMaxValue field is set.
         */
        @java.lang.Override
        public boolean hasKpiMaxValue() {
            return kpiMaxValue_ != null;
        }

        /**
         * <code>.monitoring.KpiValue kpiMaxValue = 2;</code>
         * @return The kpiMaxValue.
         */
        @java.lang.Override
        public monitoring.Monitoring.KpiValue getKpiMaxValue() {
            return kpiMaxValue_ == null ? monitoring.Monitoring.KpiValue.getDefaultInstance() : kpiMaxValue_;
        }

        /**
         * <code>.monitoring.KpiValue kpiMaxValue = 2;</code>
         */
        @java.lang.Override
        public monitoring.Monitoring.KpiValueOrBuilder getKpiMaxValueOrBuilder() {
            return kpiMaxValue_ == null ? monitoring.Monitoring.KpiValue.getDefaultInstance() : kpiMaxValue_;
        }

        public static final int INRANGE_FIELD_NUMBER = 3;

        private boolean inRange_ = false;

        /**
         * <pre>
         * by default True
         * </pre>
         *
         * <code>bool inRange = 3;</code>
         * @return The inRange.
         */
        @java.lang.Override
        public boolean getInRange() {
            return inRange_;
        }

        public static final int INCLUDEMINVALUE_FIELD_NUMBER = 4;

        private boolean includeMinValue_ = false;

        /**
         * <pre>
         * False is outside the interval
         * </pre>
         *
         * <code>bool includeMinValue = 4;</code>
         * @return The includeMinValue.
         */
        @java.lang.Override
        public boolean getIncludeMinValue() {
            return includeMinValue_;
        }

        public static final int INCLUDEMAXVALUE_FIELD_NUMBER = 5;

        private boolean includeMaxValue_ = false;

        /**
         * <pre>
         * False is outside the interval
         * </pre>
         *
         * <code>bool includeMaxValue = 5;</code>
         * @return The includeMaxValue.
         */
        @java.lang.Override
        public boolean getIncludeMaxValue() {
            return includeMaxValue_;
        }

        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 (kpiMinValue_ != null) {
                output.writeMessage(1, getKpiMinValue());
            }
            if (kpiMaxValue_ != null) {
                output.writeMessage(2, getKpiMaxValue());
            }
            if (inRange_ != false) {
                output.writeBool(3, inRange_);
            }
            if (includeMinValue_ != false) {
                output.writeBool(4, includeMinValue_);
            }
            if (includeMaxValue_ != false) {
                output.writeBool(5, includeMaxValue_);
            }
            getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;
            size = 0;
            if (kpiMinValue_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getKpiMinValue());
            }
            if (kpiMaxValue_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getKpiMaxValue());
            }
            if (inRange_ != false) {
                size += com.google.protobuf.CodedOutputStream.computeBoolSize(3, inRange_);
            }
            if (includeMinValue_ != false) {
                size += com.google.protobuf.CodedOutputStream.computeBoolSize(4, includeMinValue_);
            }
            if (includeMaxValue_ != false) {
                size += com.google.protobuf.CodedOutputStream.computeBoolSize(5, includeMaxValue_);
            }
            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 monitoring.Monitoring.KpiValueRange)) {
                return super.equals(obj);
            }
            monitoring.Monitoring.KpiValueRange other = (monitoring.Monitoring.KpiValueRange) obj;
            if (hasKpiMinValue() != other.hasKpiMinValue())
                return false;
            if (hasKpiMinValue()) {
                if (!getKpiMinValue().equals(other.getKpiMinValue()))
                    return false;
            }
            if (hasKpiMaxValue() != other.hasKpiMaxValue())
                return false;
            if (hasKpiMaxValue()) {
                if (!getKpiMaxValue().equals(other.getKpiMaxValue()))
                    return false;
            }
            if (getInRange() != other.getInRange())
                return false;
            if (getIncludeMinValue() != other.getIncludeMinValue())
                return false;
            if (getIncludeMaxValue() != other.getIncludeMaxValue())
                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();
            if (hasKpiMinValue()) {
                hash = (37 * hash) + KPIMINVALUE_FIELD_NUMBER;
                hash = (53 * hash) + getKpiMinValue().hashCode();
            }
            if (hasKpiMaxValue()) {
                hash = (37 * hash) + KPIMAXVALUE_FIELD_NUMBER;
                hash = (53 * hash) + getKpiMaxValue().hashCode();
            }
            hash = (37 * hash) + INRANGE_FIELD_NUMBER;
            hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getInRange());
            hash = (37 * hash) + INCLUDEMINVALUE_FIELD_NUMBER;
            hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getIncludeMinValue());
            hash = (37 * hash) + INCLUDEMAXVALUE_FIELD_NUMBER;
            hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getIncludeMaxValue());
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static monitoring.Monitoring.KpiValueRange parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.KpiValueRange parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.KpiValueRange parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.KpiValueRange parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.KpiValueRange parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.KpiValueRange parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.KpiValueRange parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.KpiValueRange 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 monitoring.Monitoring.KpiValueRange parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.KpiValueRange 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 monitoring.Monitoring.KpiValueRange parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.KpiValueRange 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(monitoring.Monitoring.KpiValueRange 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;
        }

        /**
         * Protobuf type {@code monitoring.KpiValueRange}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:monitoring.KpiValueRange)
        monitoring.Monitoring.KpiValueRangeOrBuilder {

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return monitoring.Monitoring.internal_static_monitoring_KpiValueRange_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
                return monitoring.Monitoring.internal_static_monitoring_KpiValueRange_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.KpiValueRange.class, monitoring.Monitoring.KpiValueRange.Builder.class);
            }

            // Construct using monitoring.Monitoring.KpiValueRange.newBuilder()
            private Builder() {
            }

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

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                kpiMinValue_ = null;
                if (kpiMinValueBuilder_ != null) {
                    kpiMinValueBuilder_.dispose();
                    kpiMinValueBuilder_ = null;
                }
                kpiMaxValue_ = null;
                if (kpiMaxValueBuilder_ != null) {
                    kpiMaxValueBuilder_.dispose();
                    kpiMaxValueBuilder_ = null;
                }
                inRange_ = false;
                includeMinValue_ = false;
                includeMaxValue_ = false;
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return monitoring.Monitoring.internal_static_monitoring_KpiValueRange_descriptor;
            }

            @java.lang.Override
            public monitoring.Monitoring.KpiValueRange getDefaultInstanceForType() {
                return monitoring.Monitoring.KpiValueRange.getDefaultInstance();
            }

            @java.lang.Override
            public monitoring.Monitoring.KpiValueRange build() {
                monitoring.Monitoring.KpiValueRange result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public monitoring.Monitoring.KpiValueRange buildPartial() {
                monitoring.Monitoring.KpiValueRange result = new monitoring.Monitoring.KpiValueRange(this);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                }
                onBuilt();
                return result;
            }

            private void buildPartial0(monitoring.Monitoring.KpiValueRange result) {
                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    result.kpiMinValue_ = kpiMinValueBuilder_ == null ? kpiMinValue_ : kpiMinValueBuilder_.build();
                }
                if (((from_bitField0_ & 0x00000002) != 0)) {
                    result.kpiMaxValue_ = kpiMaxValueBuilder_ == null ? kpiMaxValue_ : kpiMaxValueBuilder_.build();
                }
                if (((from_bitField0_ & 0x00000004) != 0)) {
                    result.inRange_ = inRange_;
                }
                if (((from_bitField0_ & 0x00000008) != 0)) {
                    result.includeMinValue_ = includeMinValue_;
                }
                if (((from_bitField0_ & 0x00000010) != 0)) {
                    result.includeMaxValue_ = includeMaxValue_;
                }
            }

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

            public Builder mergeFrom(monitoring.Monitoring.KpiValueRange other) {
                if (other == monitoring.Monitoring.KpiValueRange.getDefaultInstance())
                    return this;
                if (other.hasKpiMinValue()) {
                    mergeKpiMinValue(other.getKpiMinValue());
                }
                if (other.hasKpiMaxValue()) {
                    mergeKpiMaxValue(other.getKpiMaxValue());
                }
                if (other.getInRange() != false) {
                    setInRange(other.getInRange());
                }
                if (other.getIncludeMinValue() != false) {
                    setIncludeMinValue(other.getIncludeMinValue());
                }
                if (other.getIncludeMaxValue() != false) {
                    setIncludeMaxValue(other.getIncludeMaxValue());
                }
                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:
                                {
                                    input.readMessage(getKpiMinValueFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000001;
                                    break;
                                }
                            // case 10
                            case 18:
                                {
                                    input.readMessage(getKpiMaxValueFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000002;
                                    break;
                                }
                            // case 18
                            case 24:
                                {
                                    inRange_ = input.readBool();
                                    bitField0_ |= 0x00000004;
                                    break;
                                }
                            // case 24
                            case 32:
                                {
                                    includeMinValue_ = input.readBool();
                                    bitField0_ |= 0x00000008;
                                    break;
                                }
                            // case 32
                            case 40:
                                {
                                    includeMaxValue_ = input.readBool();
                                    bitField0_ |= 0x00000010;
                                    break;
                                }
                            // case 40
                            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 monitoring.Monitoring.KpiValue kpiMinValue_;

            private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiValue, monitoring.Monitoring.KpiValue.Builder, monitoring.Monitoring.KpiValueOrBuilder> kpiMinValueBuilder_;

            /**
             * <code>.monitoring.KpiValue kpiMinValue = 1;</code>
             * @return Whether the kpiMinValue field is set.
             */
            public boolean hasKpiMinValue() {
                return ((bitField0_ & 0x00000001) != 0);
            }

            /**
             * <code>.monitoring.KpiValue kpiMinValue = 1;</code>
             * @return The kpiMinValue.
             */
            public monitoring.Monitoring.KpiValue getKpiMinValue() {
                if (kpiMinValueBuilder_ == null) {
                    return kpiMinValue_ == null ? monitoring.Monitoring.KpiValue.getDefaultInstance() : kpiMinValue_;
                } else {
                    return kpiMinValueBuilder_.getMessage();
                }
            }

            /**
             * <code>.monitoring.KpiValue kpiMinValue = 1;</code>
             */
            public Builder setKpiMinValue(monitoring.Monitoring.KpiValue value) {
                if (kpiMinValueBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    kpiMinValue_ = value;
                } else {
                    kpiMinValueBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiValue kpiMinValue = 1;</code>
             */
            public Builder setKpiMinValue(monitoring.Monitoring.KpiValue.Builder builderForValue) {
                if (kpiMinValueBuilder_ == null) {
                    kpiMinValue_ = builderForValue.build();
                } else {
                    kpiMinValueBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiValue kpiMinValue = 1;</code>
             */
            public Builder mergeKpiMinValue(monitoring.Monitoring.KpiValue value) {
                if (kpiMinValueBuilder_ == null) {
                    if (((bitField0_ & 0x00000001) != 0) && kpiMinValue_ != null && kpiMinValue_ != monitoring.Monitoring.KpiValue.getDefaultInstance()) {
                        getKpiMinValueBuilder().mergeFrom(value);
                    } else {
                        kpiMinValue_ = value;
                    }
                } else {
                    kpiMinValueBuilder_.mergeFrom(value);
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiValue kpiMinValue = 1;</code>
             */
            public Builder clearKpiMinValue() {
                bitField0_ = (bitField0_ & ~0x00000001);
                kpiMinValue_ = null;
                if (kpiMinValueBuilder_ != null) {
                    kpiMinValueBuilder_.dispose();
                    kpiMinValueBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiValue kpiMinValue = 1;</code>
             */
            public monitoring.Monitoring.KpiValue.Builder getKpiMinValueBuilder() {
                bitField0_ |= 0x00000001;
                onChanged();
                return getKpiMinValueFieldBuilder().getBuilder();
            }

            /**
             * <code>.monitoring.KpiValue kpiMinValue = 1;</code>
             */
            public monitoring.Monitoring.KpiValueOrBuilder getKpiMinValueOrBuilder() {
                if (kpiMinValueBuilder_ != null) {
                    return kpiMinValueBuilder_.getMessageOrBuilder();
                } else {
                    return kpiMinValue_ == null ? monitoring.Monitoring.KpiValue.getDefaultInstance() : kpiMinValue_;
                }
            }

            /**
             * <code>.monitoring.KpiValue kpiMinValue = 1;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiValue, monitoring.Monitoring.KpiValue.Builder, monitoring.Monitoring.KpiValueOrBuilder> getKpiMinValueFieldBuilder() {
                if (kpiMinValueBuilder_ == null) {
                    kpiMinValueBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiValue, monitoring.Monitoring.KpiValue.Builder, monitoring.Monitoring.KpiValueOrBuilder>(getKpiMinValue(), getParentForChildren(), isClean());
                    kpiMinValue_ = null;
                }
                return kpiMinValueBuilder_;
            }

            private monitoring.Monitoring.KpiValue kpiMaxValue_;

            private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiValue, monitoring.Monitoring.KpiValue.Builder, monitoring.Monitoring.KpiValueOrBuilder> kpiMaxValueBuilder_;

            /**
             * <code>.monitoring.KpiValue kpiMaxValue = 2;</code>
             * @return Whether the kpiMaxValue field is set.
             */
            public boolean hasKpiMaxValue() {
                return ((bitField0_ & 0x00000002) != 0);
            }

            /**
             * <code>.monitoring.KpiValue kpiMaxValue = 2;</code>
             * @return The kpiMaxValue.
             */
            public monitoring.Monitoring.KpiValue getKpiMaxValue() {
                if (kpiMaxValueBuilder_ == null) {
                    return kpiMaxValue_ == null ? monitoring.Monitoring.KpiValue.getDefaultInstance() : kpiMaxValue_;
                } else {
                    return kpiMaxValueBuilder_.getMessage();
                }
            }

            /**
             * <code>.monitoring.KpiValue kpiMaxValue = 2;</code>
             */
            public Builder setKpiMaxValue(monitoring.Monitoring.KpiValue value) {
                if (kpiMaxValueBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    kpiMaxValue_ = value;
                } else {
                    kpiMaxValueBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiValue kpiMaxValue = 2;</code>
             */
            public Builder setKpiMaxValue(monitoring.Monitoring.KpiValue.Builder builderForValue) {
                if (kpiMaxValueBuilder_ == null) {
                    kpiMaxValue_ = builderForValue.build();
                } else {
                    kpiMaxValueBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiValue kpiMaxValue = 2;</code>
             */
            public Builder mergeKpiMaxValue(monitoring.Monitoring.KpiValue value) {
                if (kpiMaxValueBuilder_ == null) {
                    if (((bitField0_ & 0x00000002) != 0) && kpiMaxValue_ != null && kpiMaxValue_ != monitoring.Monitoring.KpiValue.getDefaultInstance()) {
                        getKpiMaxValueBuilder().mergeFrom(value);
                    } else {
                        kpiMaxValue_ = value;
                    }
                } else {
                    kpiMaxValueBuilder_.mergeFrom(value);
                }
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiValue kpiMaxValue = 2;</code>
             */
            public Builder clearKpiMaxValue() {
                bitField0_ = (bitField0_ & ~0x00000002);
                kpiMaxValue_ = null;
                if (kpiMaxValueBuilder_ != null) {
                    kpiMaxValueBuilder_.dispose();
                    kpiMaxValueBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiValue kpiMaxValue = 2;</code>
             */
            public monitoring.Monitoring.KpiValue.Builder getKpiMaxValueBuilder() {
                bitField0_ |= 0x00000002;
                onChanged();
                return getKpiMaxValueFieldBuilder().getBuilder();
            }

            /**
             * <code>.monitoring.KpiValue kpiMaxValue = 2;</code>
             */
            public monitoring.Monitoring.KpiValueOrBuilder getKpiMaxValueOrBuilder() {
                if (kpiMaxValueBuilder_ != null) {
                    return kpiMaxValueBuilder_.getMessageOrBuilder();
                } else {
                    return kpiMaxValue_ == null ? monitoring.Monitoring.KpiValue.getDefaultInstance() : kpiMaxValue_;
                }
            }

            /**
             * <code>.monitoring.KpiValue kpiMaxValue = 2;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiValue, monitoring.Monitoring.KpiValue.Builder, monitoring.Monitoring.KpiValueOrBuilder> getKpiMaxValueFieldBuilder() {
                if (kpiMaxValueBuilder_ == null) {
                    kpiMaxValueBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiValue, monitoring.Monitoring.KpiValue.Builder, monitoring.Monitoring.KpiValueOrBuilder>(getKpiMaxValue(), getParentForChildren(), isClean());
                    kpiMaxValue_ = null;
                }
                return kpiMaxValueBuilder_;
            }

            private boolean inRange_;

            /**
             * <pre>
             * by default True
             * </pre>
             *
             * <code>bool inRange = 3;</code>
             * @return The inRange.
             */
            @java.lang.Override
            public boolean getInRange() {
                return inRange_;
            }

            /**
             * <pre>
             * by default True
             * </pre>
             *
             * <code>bool inRange = 3;</code>
             * @param value The inRange to set.
             * @return This builder for chaining.
             */
            public Builder setInRange(boolean value) {
                inRange_ = value;
                bitField0_ |= 0x00000004;
                onChanged();
                return this;
            }

            /**
             * <pre>
             * by default True
             * </pre>
             *
             * <code>bool inRange = 3;</code>
             * @return This builder for chaining.
             */
            public Builder clearInRange() {
                bitField0_ = (bitField0_ & ~0x00000004);
                inRange_ = false;
                onChanged();
                return this;
            }

            private boolean includeMinValue_;

            /**
             * <pre>
             * False is outside the interval
             * </pre>
             *
             * <code>bool includeMinValue = 4;</code>
             * @return The includeMinValue.
             */
            @java.lang.Override
            public boolean getIncludeMinValue() {
                return includeMinValue_;
            }

            /**
             * <pre>
             * False is outside the interval
             * </pre>
             *
             * <code>bool includeMinValue = 4;</code>
             * @param value The includeMinValue to set.
             * @return This builder for chaining.
             */
            public Builder setIncludeMinValue(boolean value) {
                includeMinValue_ = value;
                bitField0_ |= 0x00000008;
                onChanged();
                return this;
            }

            /**
             * <pre>
             * False is outside the interval
             * </pre>
             *
             * <code>bool includeMinValue = 4;</code>
             * @return This builder for chaining.
             */
            public Builder clearIncludeMinValue() {
                bitField0_ = (bitField0_ & ~0x00000008);
                includeMinValue_ = false;
                onChanged();
                return this;
            }

            private boolean includeMaxValue_;

            /**
             * <pre>
             * False is outside the interval
             * </pre>
             *
             * <code>bool includeMaxValue = 5;</code>
             * @return The includeMaxValue.
             */
            @java.lang.Override
            public boolean getIncludeMaxValue() {
                return includeMaxValue_;
            }

            /**
             * <pre>
             * False is outside the interval
             * </pre>
             *
             * <code>bool includeMaxValue = 5;</code>
             * @param value The includeMaxValue to set.
             * @return This builder for chaining.
             */
            public Builder setIncludeMaxValue(boolean value) {
                includeMaxValue_ = value;
                bitField0_ |= 0x00000010;
                onChanged();
                return this;
            }

            /**
             * <pre>
             * False is outside the interval
             * </pre>
             *
             * <code>bool includeMaxValue = 5;</code>
             * @return This builder for chaining.
             */
            public Builder clearIncludeMaxValue() {
                bitField0_ = (bitField0_ & ~0x00000010);
                includeMaxValue_ = false;
                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:monitoring.KpiValueRange)
        }

        // @@protoc_insertion_point(class_scope:monitoring.KpiValueRange)
        private static final monitoring.Monitoring.KpiValueRange DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new monitoring.Monitoring.KpiValueRange();
        }

        public static monitoring.Monitoring.KpiValueRange getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

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

            @java.lang.Override
            public KpiValueRange 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<KpiValueRange> parser() {
            return PARSER;
        }

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

        @java.lang.Override
        public monitoring.Monitoring.KpiValueRange getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    }

    public interface KpiValueOrBuilder extends // @@protoc_insertion_point(interface_extends:monitoring.KpiValue)
    com.google.protobuf.MessageOrBuilder {

        /**
         * <code>int32 int32Val = 1;</code>
         * @return Whether the int32Val field is set.
         */
        boolean hasInt32Val();

        /**
         * <code>int32 int32Val = 1;</code>
         * @return The int32Val.
         */
        int getInt32Val();

        /**
         * <code>uint32 uint32Val = 2;</code>
         * @return Whether the uint32Val field is set.
         */
        boolean hasUint32Val();

        /**
         * <code>uint32 uint32Val = 2;</code>
         * @return The uint32Val.
         */
        int getUint32Val();

        /**
         * <code>int64 int64Val = 3;</code>
         * @return Whether the int64Val field is set.
         */
        boolean hasInt64Val();

        /**
         * <code>int64 int64Val = 3;</code>
         * @return The int64Val.
         */
        long getInt64Val();

        /**
         * <code>uint64 uint64Val = 4;</code>
         * @return Whether the uint64Val field is set.
         */
        boolean hasUint64Val();

        /**
         * <code>uint64 uint64Val = 4;</code>
         * @return The uint64Val.
         */
        long getUint64Val();

        /**
         * <code>float floatVal = 5;</code>
         * @return Whether the floatVal field is set.
         */
        boolean hasFloatVal();

        /**
         * <code>float floatVal = 5;</code>
         * @return The floatVal.
         */
        float getFloatVal();

        /**
         * <code>string stringVal = 6;</code>
         * @return Whether the stringVal field is set.
         */
        boolean hasStringVal();

        /**
         * <code>string stringVal = 6;</code>
         * @return The stringVal.
         */
        java.lang.String getStringVal();

        /**
         * <code>string stringVal = 6;</code>
         * @return The bytes for stringVal.
         */
        com.google.protobuf.ByteString getStringValBytes();

        /**
         * <code>bool boolVal = 7;</code>
         * @return Whether the boolVal field is set.
         */
        boolean hasBoolVal();

        /**
         * <code>bool boolVal = 7;</code>
         * @return The boolVal.
         */
        boolean getBoolVal();

        monitoring.Monitoring.KpiValue.ValueCase getValueCase();
    }

    /**
     * Protobuf type {@code monitoring.KpiValue}
     */
    public static final class KpiValue extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:monitoring.KpiValue)
    KpiValueOrBuilder {

        private static final long serialVersionUID = 0L;

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

        private KpiValue() {
        }

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

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return monitoring.Monitoring.internal_static_monitoring_KpiValue_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            return monitoring.Monitoring.internal_static_monitoring_KpiValue_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.KpiValue.class, monitoring.Monitoring.KpiValue.Builder.class);
        }

        private int valueCase_ = 0;

        @SuppressWarnings("serial")
        private java.lang.Object value_;

        public enum ValueCase implements com.google.protobuf.Internal.EnumLite, com.google.protobuf.AbstractMessage.InternalOneOfEnum {

            INT32VAL(1),
            UINT32VAL(2),
            INT64VAL(3),
            UINT64VAL(4),
            FLOATVAL(5),
            STRINGVAL(6),
            BOOLVAL(7),
            VALUE_NOT_SET(0);

            private final int value;

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

            /**
             * @param value The number of the enum to look for.
             * @return The enum associated with the given number.
             * @deprecated Use {@link #forNumber(int)} instead.
             */
            @java.lang.Deprecated
            public static ValueCase valueOf(int value) {
                return forNumber(value);
            }

            public static ValueCase forNumber(int value) {
                switch(value) {
                    case 1:
                        return INT32VAL;
                    case 2:
                        return UINT32VAL;
                    case 3:
                        return INT64VAL;
                    case 4:
                        return UINT64VAL;
                    case 5:
                        return FLOATVAL;
                    case 6:
                        return STRINGVAL;
                    case 7:
                        return BOOLVAL;
                    case 0:
                        return VALUE_NOT_SET;
                    default:
                        return null;
                }
            }

            public int getNumber() {
                return this.value;
            }
        }

        public ValueCase getValueCase() {
            return ValueCase.forNumber(valueCase_);
        }

        public static final int INT32VAL_FIELD_NUMBER = 1;

        /**
         * <code>int32 int32Val = 1;</code>
         * @return Whether the int32Val field is set.
         */
        @java.lang.Override
        public boolean hasInt32Val() {
            return valueCase_ == 1;
        }

        /**
         * <code>int32 int32Val = 1;</code>
         * @return The int32Val.
         */
        @java.lang.Override
        public int getInt32Val() {
            if (valueCase_ == 1) {
                return (java.lang.Integer) value_;
            }
            return 0;
        }

        public static final int UINT32VAL_FIELD_NUMBER = 2;

        /**
         * <code>uint32 uint32Val = 2;</code>
         * @return Whether the uint32Val field is set.
         */
        @java.lang.Override
        public boolean hasUint32Val() {
            return valueCase_ == 2;
        }

        /**
         * <code>uint32 uint32Val = 2;</code>
         * @return The uint32Val.
         */
        @java.lang.Override
        public int getUint32Val() {
            if (valueCase_ == 2) {
                return (java.lang.Integer) value_;
            }
            return 0;
        }

        public static final int INT64VAL_FIELD_NUMBER = 3;

        /**
         * <code>int64 int64Val = 3;</code>
         * @return Whether the int64Val field is set.
         */
        @java.lang.Override
        public boolean hasInt64Val() {
            return valueCase_ == 3;
        }

        /**
         * <code>int64 int64Val = 3;</code>
         * @return The int64Val.
         */
        @java.lang.Override
        public long getInt64Val() {
            if (valueCase_ == 3) {
                return (java.lang.Long) value_;
            }
            return 0L;
        }

        public static final int UINT64VAL_FIELD_NUMBER = 4;

        /**
         * <code>uint64 uint64Val = 4;</code>
         * @return Whether the uint64Val field is set.
         */
        @java.lang.Override
        public boolean hasUint64Val() {
            return valueCase_ == 4;
        }

        /**
         * <code>uint64 uint64Val = 4;</code>
         * @return The uint64Val.
         */
        @java.lang.Override
        public long getUint64Val() {
            if (valueCase_ == 4) {
                return (java.lang.Long) value_;
            }
            return 0L;
        }

        public static final int FLOATVAL_FIELD_NUMBER = 5;

        /**
         * <code>float floatVal = 5;</code>
         * @return Whether the floatVal field is set.
         */
        @java.lang.Override
        public boolean hasFloatVal() {
            return valueCase_ == 5;
        }

        /**
         * <code>float floatVal = 5;</code>
         * @return The floatVal.
         */
        @java.lang.Override
        public float getFloatVal() {
            if (valueCase_ == 5) {
                return (java.lang.Float) value_;
            }
            return 0F;
        }

        public static final int STRINGVAL_FIELD_NUMBER = 6;

        /**
         * <code>string stringVal = 6;</code>
         * @return Whether the stringVal field is set.
         */
        public boolean hasStringVal() {
            return valueCase_ == 6;
        }

        /**
         * <code>string stringVal = 6;</code>
         * @return The stringVal.
         */
        public java.lang.String getStringVal() {
            java.lang.Object ref = "";
            if (valueCase_ == 6) {
                ref = value_;
            }
            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();
                if (valueCase_ == 6) {
                    value_ = s;
                }
                return s;
            }
        }

        /**
         * <code>string stringVal = 6;</code>
         * @return The bytes for stringVal.
         */
        public com.google.protobuf.ByteString getStringValBytes() {
            java.lang.Object ref = "";
            if (valueCase_ == 6) {
                ref = value_;
            }
            if (ref instanceof java.lang.String) {
                com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
                if (valueCase_ == 6) {
                    value_ = b;
                }
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }

        public static final int BOOLVAL_FIELD_NUMBER = 7;

        /**
         * <code>bool boolVal = 7;</code>
         * @return Whether the boolVal field is set.
         */
        @java.lang.Override
        public boolean hasBoolVal() {
            return valueCase_ == 7;
        }

        /**
         * <code>bool boolVal = 7;</code>
         * @return The boolVal.
         */
        @java.lang.Override
        public boolean getBoolVal() {
            if (valueCase_ == 7) {
                return (java.lang.Boolean) value_;
            }
            return false;
        }

        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 (valueCase_ == 1) {
                output.writeInt32(1, (int) ((java.lang.Integer) value_));
            }
            if (valueCase_ == 2) {
                output.writeUInt32(2, (int) ((java.lang.Integer) value_));
            }
            if (valueCase_ == 3) {
                output.writeInt64(3, (long) ((java.lang.Long) value_));
            }
            if (valueCase_ == 4) {
                output.writeUInt64(4, (long) ((java.lang.Long) value_));
            }
            if (valueCase_ == 5) {
                output.writeFloat(5, (float) ((java.lang.Float) value_));
            }
            if (valueCase_ == 6) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 6, value_);
            }
            if (valueCase_ == 7) {
                output.writeBool(7, (boolean) ((java.lang.Boolean) value_));
            }
            getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;
            size = 0;
            if (valueCase_ == 1) {
                size += com.google.protobuf.CodedOutputStream.computeInt32Size(1, (int) ((java.lang.Integer) value_));
            }
            if (valueCase_ == 2) {
                size += com.google.protobuf.CodedOutputStream.computeUInt32Size(2, (int) ((java.lang.Integer) value_));
            }
            if (valueCase_ == 3) {
                size += com.google.protobuf.CodedOutputStream.computeInt64Size(3, (long) ((java.lang.Long) value_));
            }
            if (valueCase_ == 4) {
                size += com.google.protobuf.CodedOutputStream.computeUInt64Size(4, (long) ((java.lang.Long) value_));
            }
            if (valueCase_ == 5) {
                size += com.google.protobuf.CodedOutputStream.computeFloatSize(5, (float) ((java.lang.Float) value_));
            }
            if (valueCase_ == 6) {
                size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, value_);
            }
            if (valueCase_ == 7) {
                size += com.google.protobuf.CodedOutputStream.computeBoolSize(7, (boolean) ((java.lang.Boolean) value_));
            }
            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 monitoring.Monitoring.KpiValue)) {
                return super.equals(obj);
            }
            monitoring.Monitoring.KpiValue other = (monitoring.Monitoring.KpiValue) obj;
            if (!getValueCase().equals(other.getValueCase()))
                return false;
            switch(valueCase_) {
                case 1:
                    if (getInt32Val() != other.getInt32Val())
                        return false;
                    break;
                case 2:
                    if (getUint32Val() != other.getUint32Val())
                        return false;
                    break;
                case 3:
                    if (getInt64Val() != other.getInt64Val())
                        return false;
                    break;
                case 4:
                    if (getUint64Val() != other.getUint64Val())
                        return false;
                    break;
                case 5:
                    if (java.lang.Float.floatToIntBits(getFloatVal()) != java.lang.Float.floatToIntBits(other.getFloatVal()))
                        return false;
                    break;
                case 6:
                    if (!getStringVal().equals(other.getStringVal()))
                        return false;
                    break;
                case 7:
                    if (getBoolVal() != other.getBoolVal())
                        return false;
                    break;
                case 0:
                default:
            }
            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();
            switch(valueCase_) {
                case 1:
                    hash = (37 * hash) + INT32VAL_FIELD_NUMBER;
                    hash = (53 * hash) + getInt32Val();
                    break;
                case 2:
                    hash = (37 * hash) + UINT32VAL_FIELD_NUMBER;
                    hash = (53 * hash) + getUint32Val();
                    break;
                case 3:
                    hash = (37 * hash) + INT64VAL_FIELD_NUMBER;
                    hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getInt64Val());
                    break;
                case 4:
                    hash = (37 * hash) + UINT64VAL_FIELD_NUMBER;
                    hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getUint64Val());
                    break;
                case 5:
                    hash = (37 * hash) + FLOATVAL_FIELD_NUMBER;
                    hash = (53 * hash) + java.lang.Float.floatToIntBits(getFloatVal());
                    break;
                case 6:
                    hash = (37 * hash) + STRINGVAL_FIELD_NUMBER;
                    hash = (53 * hash) + getStringVal().hashCode();
                    break;
                case 7:
                    hash = (37 * hash) + BOOLVAL_FIELD_NUMBER;
                    hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getBoolVal());
                    break;
                case 0:
                default:
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static monitoring.Monitoring.KpiValue parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.KpiValue parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.KpiValue parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.KpiValue parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.KpiValue parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.KpiValue parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.KpiValue parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.KpiValue 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 monitoring.Monitoring.KpiValue parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.KpiValue 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 monitoring.Monitoring.KpiValue parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.KpiValue 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(monitoring.Monitoring.KpiValue 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;
        }

        /**
         * Protobuf type {@code monitoring.KpiValue}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:monitoring.KpiValue)
        monitoring.Monitoring.KpiValueOrBuilder {

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return monitoring.Monitoring.internal_static_monitoring_KpiValue_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
                return monitoring.Monitoring.internal_static_monitoring_KpiValue_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.KpiValue.class, monitoring.Monitoring.KpiValue.Builder.class);
            }

            // Construct using monitoring.Monitoring.KpiValue.newBuilder()
            private Builder() {
            }

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

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                valueCase_ = 0;
                value_ = null;
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return monitoring.Monitoring.internal_static_monitoring_KpiValue_descriptor;
            }

            @java.lang.Override
            public monitoring.Monitoring.KpiValue getDefaultInstanceForType() {
                return monitoring.Monitoring.KpiValue.getDefaultInstance();
            }

            @java.lang.Override
            public monitoring.Monitoring.KpiValue build() {
                monitoring.Monitoring.KpiValue result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public monitoring.Monitoring.KpiValue buildPartial() {
                monitoring.Monitoring.KpiValue result = new monitoring.Monitoring.KpiValue(this);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                }
                buildPartialOneofs(result);
                onBuilt();
                return result;
            }

            private void buildPartial0(monitoring.Monitoring.KpiValue result) {
                int from_bitField0_ = bitField0_;
            }

            private void buildPartialOneofs(monitoring.Monitoring.KpiValue result) {
                result.valueCase_ = valueCase_;
                result.value_ = this.value_;
            }

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

            public Builder mergeFrom(monitoring.Monitoring.KpiValue other) {
                if (other == monitoring.Monitoring.KpiValue.getDefaultInstance())
                    return this;
                switch(other.getValueCase()) {
                    case INT32VAL:
                        {
                            setInt32Val(other.getInt32Val());
                            break;
                        }
                    case UINT32VAL:
                        {
                            setUint32Val(other.getUint32Val());
                            break;
                        }
                    case INT64VAL:
                        {
                            setInt64Val(other.getInt64Val());
                            break;
                        }
                    case UINT64VAL:
                        {
                            setUint64Val(other.getUint64Val());
                            break;
                        }
                    case FLOATVAL:
                        {
                            setFloatVal(other.getFloatVal());
                            break;
                        }
                    case STRINGVAL:
                        {
                            valueCase_ = 6;
                            value_ = other.value_;
                            onChanged();
                            break;
                        }
                    case BOOLVAL:
                        {
                            setBoolVal(other.getBoolVal());
                            break;
                        }
                    case VALUE_NOT_SET:
                        {
                            break;
                        }
                }
                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:
                                {
                                    value_ = input.readInt32();
                                    valueCase_ = 1;
                                    break;
                                }
                            // case 8
                            case 16:
                                {
                                    value_ = input.readUInt32();
                                    valueCase_ = 2;
                                    break;
                                }
                            // case 16
                            case 24:
                                {
                                    value_ = input.readInt64();
                                    valueCase_ = 3;
                                    break;
                                }
                            // case 24
                            case 32:
                                {
                                    value_ = input.readUInt64();
                                    valueCase_ = 4;
                                    break;
                                }
                            // case 32
                            case 45:
                                {
                                    value_ = input.readFloat();
                                    valueCase_ = 5;
                                    break;
                                }
                            // case 45
                            case 50:
                                {
                                    java.lang.String s = input.readStringRequireUtf8();
                                    valueCase_ = 6;
                                    value_ = s;
                                    break;
                                }
                            // case 50
                            case 56:
                                {
                                    value_ = input.readBool();
                                    valueCase_ = 7;
                                    break;
                                }
                            // case 56
                            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 valueCase_ = 0;

            private java.lang.Object value_;

            public ValueCase getValueCase() {
                return ValueCase.forNumber(valueCase_);
            }

            public Builder clearValue() {
                valueCase_ = 0;
                value_ = null;
                onChanged();
                return this;
            }

            private int bitField0_;

            /**
             * <code>int32 int32Val = 1;</code>
             * @return Whether the int32Val field is set.
             */
            public boolean hasInt32Val() {
                return valueCase_ == 1;
            }

            /**
             * <code>int32 int32Val = 1;</code>
             * @return The int32Val.
             */
            public int getInt32Val() {
                if (valueCase_ == 1) {
                    return (java.lang.Integer) value_;
                }
                return 0;
            }

            /**
             * <code>int32 int32Val = 1;</code>
             * @param value The int32Val to set.
             * @return This builder for chaining.
             */
            public Builder setInt32Val(int value) {
                valueCase_ = 1;
                value_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>int32 int32Val = 1;</code>
             * @return This builder for chaining.
             */
            public Builder clearInt32Val() {
                if (valueCase_ == 1) {
                    valueCase_ = 0;
                    value_ = null;
                    onChanged();
                }
                return this;
            }

            /**
             * <code>uint32 uint32Val = 2;</code>
             * @return Whether the uint32Val field is set.
             */
            public boolean hasUint32Val() {
                return valueCase_ == 2;
            }

            /**
             * <code>uint32 uint32Val = 2;</code>
             * @return The uint32Val.
             */
            public int getUint32Val() {
                if (valueCase_ == 2) {
                    return (java.lang.Integer) value_;
                }
                return 0;
            }

            /**
             * <code>uint32 uint32Val = 2;</code>
             * @param value The uint32Val to set.
             * @return This builder for chaining.
             */
            public Builder setUint32Val(int value) {
                valueCase_ = 2;
                value_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>uint32 uint32Val = 2;</code>
             * @return This builder for chaining.
             */
            public Builder clearUint32Val() {
                if (valueCase_ == 2) {
                    valueCase_ = 0;
                    value_ = null;
                    onChanged();
                }
                return this;
            }

            /**
             * <code>int64 int64Val = 3;</code>
             * @return Whether the int64Val field is set.
             */
            public boolean hasInt64Val() {
                return valueCase_ == 3;
            }

            /**
             * <code>int64 int64Val = 3;</code>
             * @return The int64Val.
             */
            public long getInt64Val() {
                if (valueCase_ == 3) {
                    return (java.lang.Long) value_;
                }
                return 0L;
            }

            /**
             * <code>int64 int64Val = 3;</code>
             * @param value The int64Val to set.
             * @return This builder for chaining.
             */
            public Builder setInt64Val(long value) {
                valueCase_ = 3;
                value_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>int64 int64Val = 3;</code>
             * @return This builder for chaining.
             */
            public Builder clearInt64Val() {
                if (valueCase_ == 3) {
                    valueCase_ = 0;
                    value_ = null;
                    onChanged();
                }
                return this;
            }

            /**
             * <code>uint64 uint64Val = 4;</code>
             * @return Whether the uint64Val field is set.
             */
            public boolean hasUint64Val() {
                return valueCase_ == 4;
            }

            /**
             * <code>uint64 uint64Val = 4;</code>
             * @return The uint64Val.
             */
            public long getUint64Val() {
                if (valueCase_ == 4) {
                    return (java.lang.Long) value_;
                }
                return 0L;
            }

            /**
             * <code>uint64 uint64Val = 4;</code>
             * @param value The uint64Val to set.
             * @return This builder for chaining.
             */
            public Builder setUint64Val(long value) {
                valueCase_ = 4;
                value_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>uint64 uint64Val = 4;</code>
             * @return This builder for chaining.
             */
            public Builder clearUint64Val() {
                if (valueCase_ == 4) {
                    valueCase_ = 0;
                    value_ = null;
                    onChanged();
                }
                return this;
            }

            /**
             * <code>float floatVal = 5;</code>
             * @return Whether the floatVal field is set.
             */
            public boolean hasFloatVal() {
                return valueCase_ == 5;
            }

            /**
             * <code>float floatVal = 5;</code>
             * @return The floatVal.
             */
            public float getFloatVal() {
                if (valueCase_ == 5) {
                    return (java.lang.Float) value_;
                }
                return 0F;
            }

            /**
             * <code>float floatVal = 5;</code>
             * @param value The floatVal to set.
             * @return This builder for chaining.
             */
            public Builder setFloatVal(float value) {
                valueCase_ = 5;
                value_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>float floatVal = 5;</code>
             * @return This builder for chaining.
             */
            public Builder clearFloatVal() {
                if (valueCase_ == 5) {
                    valueCase_ = 0;
                    value_ = null;
                    onChanged();
                }
                return this;
            }

            /**
             * <code>string stringVal = 6;</code>
             * @return Whether the stringVal field is set.
             */
            @java.lang.Override
            public boolean hasStringVal() {
                return valueCase_ == 6;
            }

            /**
             * <code>string stringVal = 6;</code>
             * @return The stringVal.
             */
            @java.lang.Override
            public java.lang.String getStringVal() {
                java.lang.Object ref = "";
                if (valueCase_ == 6) {
                    ref = value_;
                }
                if (!(ref instanceof java.lang.String)) {
                    com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    if (valueCase_ == 6) {
                        value_ = s;
                    }
                    return s;
                } else {
                    return (java.lang.String) ref;
                }
            }

            /**
             * <code>string stringVal = 6;</code>
             * @return The bytes for stringVal.
             */
            @java.lang.Override
            public com.google.protobuf.ByteString getStringValBytes() {
                java.lang.Object ref = "";
                if (valueCase_ == 6) {
                    ref = value_;
                }
                if (ref instanceof String) {
                    com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
                    if (valueCase_ == 6) {
                        value_ = b;
                    }
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            /**
             * <code>string stringVal = 6;</code>
             * @param value The stringVal to set.
             * @return This builder for chaining.
             */
            public Builder setStringVal(java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                valueCase_ = 6;
                value_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>string stringVal = 6;</code>
             * @return This builder for chaining.
             */
            public Builder clearStringVal() {
                if (valueCase_ == 6) {
                    valueCase_ = 0;
                    value_ = null;
                    onChanged();
                }
                return this;
            }

            /**
             * <code>string stringVal = 6;</code>
             * @param value The bytes for stringVal to set.
             * @return This builder for chaining.
             */
            public Builder setStringValBytes(com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                valueCase_ = 6;
                value_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>bool boolVal = 7;</code>
             * @return Whether the boolVal field is set.
             */
            public boolean hasBoolVal() {
                return valueCase_ == 7;
            }

            /**
             * <code>bool boolVal = 7;</code>
             * @return The boolVal.
             */
            public boolean getBoolVal() {
                if (valueCase_ == 7) {
                    return (java.lang.Boolean) value_;
                }
                return false;
            }

            /**
             * <code>bool boolVal = 7;</code>
             * @param value The boolVal to set.
             * @return This builder for chaining.
             */
            public Builder setBoolVal(boolean value) {
                valueCase_ = 7;
                value_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>bool boolVal = 7;</code>
             * @return This builder for chaining.
             */
            public Builder clearBoolVal() {
                if (valueCase_ == 7) {
                    valueCase_ = 0;
                    value_ = null;
                    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:monitoring.KpiValue)
        }

        // @@protoc_insertion_point(class_scope:monitoring.KpiValue)
        private static final monitoring.Monitoring.KpiValue DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new monitoring.Monitoring.KpiValue();
        }

        public static monitoring.Monitoring.KpiValue getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

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

            @java.lang.Override
            public KpiValue 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<KpiValue> parser() {
            return PARSER;
        }

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

        @java.lang.Override
        public monitoring.Monitoring.KpiValue getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    }

    public interface KpiListOrBuilder extends // @@protoc_insertion_point(interface_extends:monitoring.KpiList)
    com.google.protobuf.MessageOrBuilder {

        /**
         * <code>repeated .monitoring.Kpi kpi = 1;</code>
         */
        java.util.List<monitoring.Monitoring.Kpi> getKpiList();

        /**
         * <code>repeated .monitoring.Kpi kpi = 1;</code>
         */
        monitoring.Monitoring.Kpi getKpi(int index);

        /**
         * <code>repeated .monitoring.Kpi kpi = 1;</code>
         */
        int getKpiCount();

        /**
         * <code>repeated .monitoring.Kpi kpi = 1;</code>
         */
        java.util.List<? extends monitoring.Monitoring.KpiOrBuilder> getKpiOrBuilderList();

        /**
         * <code>repeated .monitoring.Kpi kpi = 1;</code>
         */
        monitoring.Monitoring.KpiOrBuilder getKpiOrBuilder(int index);
    }

    /**
     * Protobuf type {@code monitoring.KpiList}
     */
    public static final class KpiList extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:monitoring.KpiList)
    KpiListOrBuilder {

        private static final long serialVersionUID = 0L;

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

        private KpiList() {
            kpi_ = java.util.Collections.emptyList();
        }

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

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return monitoring.Monitoring.internal_static_monitoring_KpiList_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            return monitoring.Monitoring.internal_static_monitoring_KpiList_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.KpiList.class, monitoring.Monitoring.KpiList.Builder.class);
        }

        public static final int KPI_FIELD_NUMBER = 1;

        @SuppressWarnings("serial")
        private java.util.List<monitoring.Monitoring.Kpi> kpi_;

        /**
         * <code>repeated .monitoring.Kpi kpi = 1;</code>
         */
        @java.lang.Override
        public java.util.List<monitoring.Monitoring.Kpi> getKpiList() {
            return kpi_;
        }

        /**
         * <code>repeated .monitoring.Kpi kpi = 1;</code>
         */
        @java.lang.Override
        public java.util.List<? extends monitoring.Monitoring.KpiOrBuilder> getKpiOrBuilderList() {
            return kpi_;
        }

        /**
         * <code>repeated .monitoring.Kpi kpi = 1;</code>
         */
        @java.lang.Override
        public int getKpiCount() {
            return kpi_.size();
        }

        /**
         * <code>repeated .monitoring.Kpi kpi = 1;</code>
         */
        @java.lang.Override
        public monitoring.Monitoring.Kpi getKpi(int index) {
            return kpi_.get(index);
        }

        /**
         * <code>repeated .monitoring.Kpi kpi = 1;</code>
         */
        @java.lang.Override
        public monitoring.Monitoring.KpiOrBuilder getKpiOrBuilder(int index) {
            return kpi_.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 {
            for (int i = 0; i < kpi_.size(); i++) {
                output.writeMessage(1, kpi_.get(i));
            }
            getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;
            size = 0;
            for (int i = 0; i < kpi_.size(); i++) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, kpi_.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 monitoring.Monitoring.KpiList)) {
                return super.equals(obj);
            }
            monitoring.Monitoring.KpiList other = (monitoring.Monitoring.KpiList) obj;
            if (!getKpiList().equals(other.getKpiList()))
                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();
            if (getKpiCount() > 0) {
                hash = (37 * hash) + KPI_FIELD_NUMBER;
                hash = (53 * hash) + getKpiList().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static monitoring.Monitoring.KpiList parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.KpiList parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.KpiList parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.KpiList parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.KpiList parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.KpiList parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.KpiList parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.KpiList 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 monitoring.Monitoring.KpiList parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.KpiList 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 monitoring.Monitoring.KpiList parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.KpiList 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(monitoring.Monitoring.KpiList 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;
        }

        /**
         * Protobuf type {@code monitoring.KpiList}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:monitoring.KpiList)
        monitoring.Monitoring.KpiListOrBuilder {

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return monitoring.Monitoring.internal_static_monitoring_KpiList_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
                return monitoring.Monitoring.internal_static_monitoring_KpiList_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.KpiList.class, monitoring.Monitoring.KpiList.Builder.class);
            }

            // Construct using monitoring.Monitoring.KpiList.newBuilder()
            private Builder() {
            }

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

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                if (kpiBuilder_ == null) {
                    kpi_ = java.util.Collections.emptyList();
                } else {
                    kpi_ = null;
                    kpiBuilder_.clear();
                }
                bitField0_ = (bitField0_ & ~0x00000001);
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return monitoring.Monitoring.internal_static_monitoring_KpiList_descriptor;
            }

            @java.lang.Override
            public monitoring.Monitoring.KpiList getDefaultInstanceForType() {
                return monitoring.Monitoring.KpiList.getDefaultInstance();
            }

            @java.lang.Override
            public monitoring.Monitoring.KpiList build() {
                monitoring.Monitoring.KpiList result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

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

            private void buildPartialRepeatedFields(monitoring.Monitoring.KpiList result) {
                if (kpiBuilder_ == null) {
                    if (((bitField0_ & 0x00000001) != 0)) {
                        kpi_ = java.util.Collections.unmodifiableList(kpi_);
                        bitField0_ = (bitField0_ & ~0x00000001);
                    }
                    result.kpi_ = kpi_;
                } else {
                    result.kpi_ = kpiBuilder_.build();
                }
            }

            private void buildPartial0(monitoring.Monitoring.KpiList result) {
                int from_bitField0_ = bitField0_;
            }

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

            public Builder mergeFrom(monitoring.Monitoring.KpiList other) {
                if (other == monitoring.Monitoring.KpiList.getDefaultInstance())
                    return this;
                if (kpiBuilder_ == null) {
                    if (!other.kpi_.isEmpty()) {
                        if (kpi_.isEmpty()) {
                            kpi_ = other.kpi_;
                            bitField0_ = (bitField0_ & ~0x00000001);
                        } else {
                            ensureKpiIsMutable();
                            kpi_.addAll(other.kpi_);
                        }
                        onChanged();
                    }
                } else {
                    if (!other.kpi_.isEmpty()) {
                        if (kpiBuilder_.isEmpty()) {
                            kpiBuilder_.dispose();
                            kpiBuilder_ = null;
                            kpi_ = other.kpi_;
                            bitField0_ = (bitField0_ & ~0x00000001);
                            kpiBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getKpiFieldBuilder() : null;
                        } else {
                            kpiBuilder_.addAllMessages(other.kpi_);
                        }
                    }
                }
                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:
                                {
                                    monitoring.Monitoring.Kpi m = input.readMessage(monitoring.Monitoring.Kpi.parser(), extensionRegistry);
                                    if (kpiBuilder_ == null) {
                                        ensureKpiIsMutable();
                                        kpi_.add(m);
                                    } else {
                                        kpiBuilder_.addMessage(m);
                                    }
                                    break;
                                }
                            // case 10
                            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.util.List<monitoring.Monitoring.Kpi> kpi_ = java.util.Collections.emptyList();

            private void ensureKpiIsMutable() {
                if (!((bitField0_ & 0x00000001) != 0)) {
                    kpi_ = new java.util.ArrayList<monitoring.Monitoring.Kpi>(kpi_);
                    bitField0_ |= 0x00000001;
                }
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<monitoring.Monitoring.Kpi, monitoring.Monitoring.Kpi.Builder, monitoring.Monitoring.KpiOrBuilder> kpiBuilder_;

            /**
             * <code>repeated .monitoring.Kpi kpi = 1;</code>
             */
            public java.util.List<monitoring.Monitoring.Kpi> getKpiList() {
                if (kpiBuilder_ == null) {
                    return java.util.Collections.unmodifiableList(kpi_);
                } else {
                    return kpiBuilder_.getMessageList();
                }
            }

            /**
             * <code>repeated .monitoring.Kpi kpi = 1;</code>
             */
            public int getKpiCount() {
                if (kpiBuilder_ == null) {
                    return kpi_.size();
                } else {
                    return kpiBuilder_.getCount();
                }
            }

            /**
             * <code>repeated .monitoring.Kpi kpi = 1;</code>
             */
            public monitoring.Monitoring.Kpi getKpi(int index) {
                if (kpiBuilder_ == null) {
                    return kpi_.get(index);
                } else {
                    return kpiBuilder_.getMessage(index);
                }
            }

            /**
             * <code>repeated .monitoring.Kpi kpi = 1;</code>
             */
            public Builder setKpi(int index, monitoring.Monitoring.Kpi value) {
                if (kpiBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureKpiIsMutable();
                    kpi_.set(index, value);
                    onChanged();
                } else {
                    kpiBuilder_.setMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.Kpi kpi = 1;</code>
             */
            public Builder setKpi(int index, monitoring.Monitoring.Kpi.Builder builderForValue) {
                if (kpiBuilder_ == null) {
                    ensureKpiIsMutable();
                    kpi_.set(index, builderForValue.build());
                    onChanged();
                } else {
                    kpiBuilder_.setMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.Kpi kpi = 1;</code>
             */
            public Builder addKpi(monitoring.Monitoring.Kpi value) {
                if (kpiBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureKpiIsMutable();
                    kpi_.add(value);
                    onChanged();
                } else {
                    kpiBuilder_.addMessage(value);
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.Kpi kpi = 1;</code>
             */
            public Builder addKpi(int index, monitoring.Monitoring.Kpi value) {
                if (kpiBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureKpiIsMutable();
                    kpi_.add(index, value);
                    onChanged();
                } else {
                    kpiBuilder_.addMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.Kpi kpi = 1;</code>
             */
            public Builder addKpi(monitoring.Monitoring.Kpi.Builder builderForValue) {
                if (kpiBuilder_ == null) {
                    ensureKpiIsMutable();
                    kpi_.add(builderForValue.build());
                    onChanged();
                } else {
                    kpiBuilder_.addMessage(builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.Kpi kpi = 1;</code>
             */
            public Builder addKpi(int index, monitoring.Monitoring.Kpi.Builder builderForValue) {
                if (kpiBuilder_ == null) {
                    ensureKpiIsMutable();
                    kpi_.add(index, builderForValue.build());
                    onChanged();
                } else {
                    kpiBuilder_.addMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.Kpi kpi = 1;</code>
             */
            public Builder addAllKpi(java.lang.Iterable<? extends monitoring.Monitoring.Kpi> values) {
                if (kpiBuilder_ == null) {
                    ensureKpiIsMutable();
                    com.google.protobuf.AbstractMessageLite.Builder.addAll(values, kpi_);
                    onChanged();
                } else {
                    kpiBuilder_.addAllMessages(values);
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.Kpi kpi = 1;</code>
             */
            public Builder clearKpi() {
                if (kpiBuilder_ == null) {
                    kpi_ = java.util.Collections.emptyList();
                    bitField0_ = (bitField0_ & ~0x00000001);
                    onChanged();
                } else {
                    kpiBuilder_.clear();
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.Kpi kpi = 1;</code>
             */
            public Builder removeKpi(int index) {
                if (kpiBuilder_ == null) {
                    ensureKpiIsMutable();
                    kpi_.remove(index);
                    onChanged();
                } else {
                    kpiBuilder_.remove(index);
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.Kpi kpi = 1;</code>
             */
            public monitoring.Monitoring.Kpi.Builder getKpiBuilder(int index) {
                return getKpiFieldBuilder().getBuilder(index);
            }

            /**
             * <code>repeated .monitoring.Kpi kpi = 1;</code>
             */
            public monitoring.Monitoring.KpiOrBuilder getKpiOrBuilder(int index) {
                if (kpiBuilder_ == null) {
                    return kpi_.get(index);
                } else {
                    return kpiBuilder_.getMessageOrBuilder(index);
                }
            }

            /**
             * <code>repeated .monitoring.Kpi kpi = 1;</code>
             */
            public java.util.List<? extends monitoring.Monitoring.KpiOrBuilder> getKpiOrBuilderList() {
                if (kpiBuilder_ != null) {
                    return kpiBuilder_.getMessageOrBuilderList();
                } else {
                    return java.util.Collections.unmodifiableList(kpi_);
                }
            }

            /**
             * <code>repeated .monitoring.Kpi kpi = 1;</code>
             */
            public monitoring.Monitoring.Kpi.Builder addKpiBuilder() {
                return getKpiFieldBuilder().addBuilder(monitoring.Monitoring.Kpi.getDefaultInstance());
            }

            /**
             * <code>repeated .monitoring.Kpi kpi = 1;</code>
             */
            public monitoring.Monitoring.Kpi.Builder addKpiBuilder(int index) {
                return getKpiFieldBuilder().addBuilder(index, monitoring.Monitoring.Kpi.getDefaultInstance());
            }

            /**
             * <code>repeated .monitoring.Kpi kpi = 1;</code>
             */
            public java.util.List<monitoring.Monitoring.Kpi.Builder> getKpiBuilderList() {
                return getKpiFieldBuilder().getBuilderList();
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<monitoring.Monitoring.Kpi, monitoring.Monitoring.Kpi.Builder, monitoring.Monitoring.KpiOrBuilder> getKpiFieldBuilder() {
                if (kpiBuilder_ == null) {
                    kpiBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<monitoring.Monitoring.Kpi, monitoring.Monitoring.Kpi.Builder, monitoring.Monitoring.KpiOrBuilder>(kpi_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean());
                    kpi_ = null;
                }
                return kpiBuilder_;
            }

            @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:monitoring.KpiList)
        }

        // @@protoc_insertion_point(class_scope:monitoring.KpiList)
        private static final monitoring.Monitoring.KpiList DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new monitoring.Monitoring.KpiList();
        }

        public static monitoring.Monitoring.KpiList getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

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

            @java.lang.Override
            public KpiList 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<KpiList> parser() {
            return PARSER;
        }

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

        @java.lang.Override
        public monitoring.Monitoring.KpiList getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    }

    public interface KpiDescriptorListOrBuilder extends // @@protoc_insertion_point(interface_extends:monitoring.KpiDescriptorList)
    com.google.protobuf.MessageOrBuilder {

        /**
         * <code>repeated .monitoring.KpiDescriptor kpi_descriptor_list = 1;</code>
         */
        java.util.List<monitoring.Monitoring.KpiDescriptor> getKpiDescriptorListList();

        /**
         * <code>repeated .monitoring.KpiDescriptor kpi_descriptor_list = 1;</code>
         */
        monitoring.Monitoring.KpiDescriptor getKpiDescriptorList(int index);

        /**
         * <code>repeated .monitoring.KpiDescriptor kpi_descriptor_list = 1;</code>
         */
        int getKpiDescriptorListCount();

        /**
         * <code>repeated .monitoring.KpiDescriptor kpi_descriptor_list = 1;</code>
         */
        java.util.List<? extends monitoring.Monitoring.KpiDescriptorOrBuilder> getKpiDescriptorListOrBuilderList();

        /**
         * <code>repeated .monitoring.KpiDescriptor kpi_descriptor_list = 1;</code>
         */
        monitoring.Monitoring.KpiDescriptorOrBuilder getKpiDescriptorListOrBuilder(int index);
    }

    /**
     * Protobuf type {@code monitoring.KpiDescriptorList}
     */
    public static final class KpiDescriptorList extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:monitoring.KpiDescriptorList)
    KpiDescriptorListOrBuilder {

        private static final long serialVersionUID = 0L;

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

        private KpiDescriptorList() {
            kpiDescriptorList_ = java.util.Collections.emptyList();
        }

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

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return monitoring.Monitoring.internal_static_monitoring_KpiDescriptorList_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            return monitoring.Monitoring.internal_static_monitoring_KpiDescriptorList_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.KpiDescriptorList.class, monitoring.Monitoring.KpiDescriptorList.Builder.class);
        }

        public static final int KPI_DESCRIPTOR_LIST_FIELD_NUMBER = 1;

        @SuppressWarnings("serial")
        private java.util.List<monitoring.Monitoring.KpiDescriptor> kpiDescriptorList_;

        /**
         * <code>repeated .monitoring.KpiDescriptor kpi_descriptor_list = 1;</code>
         */
        @java.lang.Override
        public java.util.List<monitoring.Monitoring.KpiDescriptor> getKpiDescriptorListList() {
            return kpiDescriptorList_;
        }

        /**
         * <code>repeated .monitoring.KpiDescriptor kpi_descriptor_list = 1;</code>
         */
        @java.lang.Override
        public java.util.List<? extends monitoring.Monitoring.KpiDescriptorOrBuilder> getKpiDescriptorListOrBuilderList() {
            return kpiDescriptorList_;
        }

        /**
         * <code>repeated .monitoring.KpiDescriptor kpi_descriptor_list = 1;</code>
         */
        @java.lang.Override
        public int getKpiDescriptorListCount() {
            return kpiDescriptorList_.size();
        }

        /**
         * <code>repeated .monitoring.KpiDescriptor kpi_descriptor_list = 1;</code>
         */
        @java.lang.Override
        public monitoring.Monitoring.KpiDescriptor getKpiDescriptorList(int index) {
            return kpiDescriptorList_.get(index);
        }

        /**
         * <code>repeated .monitoring.KpiDescriptor kpi_descriptor_list = 1;</code>
         */
        @java.lang.Override
        public monitoring.Monitoring.KpiDescriptorOrBuilder getKpiDescriptorListOrBuilder(int index) {
            return kpiDescriptorList_.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 {
            for (int i = 0; i < kpiDescriptorList_.size(); i++) {
                output.writeMessage(1, kpiDescriptorList_.get(i));
            }
            getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;
            size = 0;
            for (int i = 0; i < kpiDescriptorList_.size(); i++) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, kpiDescriptorList_.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 monitoring.Monitoring.KpiDescriptorList)) {
                return super.equals(obj);
            }
            monitoring.Monitoring.KpiDescriptorList other = (monitoring.Monitoring.KpiDescriptorList) obj;
            if (!getKpiDescriptorListList().equals(other.getKpiDescriptorListList()))
                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();
            if (getKpiDescriptorListCount() > 0) {
                hash = (37 * hash) + KPI_DESCRIPTOR_LIST_FIELD_NUMBER;
                hash = (53 * hash) + getKpiDescriptorListList().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static monitoring.Monitoring.KpiDescriptorList parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.KpiDescriptorList parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.KpiDescriptorList parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.KpiDescriptorList parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.KpiDescriptorList parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.KpiDescriptorList parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.KpiDescriptorList parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.KpiDescriptorList 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 monitoring.Monitoring.KpiDescriptorList parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.KpiDescriptorList 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 monitoring.Monitoring.KpiDescriptorList parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.KpiDescriptorList 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(monitoring.Monitoring.KpiDescriptorList 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;
        }

        /**
         * Protobuf type {@code monitoring.KpiDescriptorList}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:monitoring.KpiDescriptorList)
        monitoring.Monitoring.KpiDescriptorListOrBuilder {

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return monitoring.Monitoring.internal_static_monitoring_KpiDescriptorList_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
                return monitoring.Monitoring.internal_static_monitoring_KpiDescriptorList_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.KpiDescriptorList.class, monitoring.Monitoring.KpiDescriptorList.Builder.class);
            }

            // Construct using monitoring.Monitoring.KpiDescriptorList.newBuilder()
            private Builder() {
            }

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

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                if (kpiDescriptorListBuilder_ == null) {
                    kpiDescriptorList_ = java.util.Collections.emptyList();
                } else {
                    kpiDescriptorList_ = null;
                    kpiDescriptorListBuilder_.clear();
                }
                bitField0_ = (bitField0_ & ~0x00000001);
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return monitoring.Monitoring.internal_static_monitoring_KpiDescriptorList_descriptor;
            }

            @java.lang.Override
            public monitoring.Monitoring.KpiDescriptorList getDefaultInstanceForType() {
                return monitoring.Monitoring.KpiDescriptorList.getDefaultInstance();
            }

            @java.lang.Override
            public monitoring.Monitoring.KpiDescriptorList build() {
                monitoring.Monitoring.KpiDescriptorList result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

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

            private void buildPartialRepeatedFields(monitoring.Monitoring.KpiDescriptorList result) {
                if (kpiDescriptorListBuilder_ == null) {
                    if (((bitField0_ & 0x00000001) != 0)) {
                        kpiDescriptorList_ = java.util.Collections.unmodifiableList(kpiDescriptorList_);
                        bitField0_ = (bitField0_ & ~0x00000001);
                    }
                    result.kpiDescriptorList_ = kpiDescriptorList_;
                } else {
                    result.kpiDescriptorList_ = kpiDescriptorListBuilder_.build();
                }
            }

            private void buildPartial0(monitoring.Monitoring.KpiDescriptorList result) {
                int from_bitField0_ = bitField0_;
            }

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

            public Builder mergeFrom(monitoring.Monitoring.KpiDescriptorList other) {
                if (other == monitoring.Monitoring.KpiDescriptorList.getDefaultInstance())
                    return this;
                if (kpiDescriptorListBuilder_ == null) {
                    if (!other.kpiDescriptorList_.isEmpty()) {
                        if (kpiDescriptorList_.isEmpty()) {
                            kpiDescriptorList_ = other.kpiDescriptorList_;
                            bitField0_ = (bitField0_ & ~0x00000001);
                        } else {
                            ensureKpiDescriptorListIsMutable();
                            kpiDescriptorList_.addAll(other.kpiDescriptorList_);
                        }
                        onChanged();
                    }
                } else {
                    if (!other.kpiDescriptorList_.isEmpty()) {
                        if (kpiDescriptorListBuilder_.isEmpty()) {
                            kpiDescriptorListBuilder_.dispose();
                            kpiDescriptorListBuilder_ = null;
                            kpiDescriptorList_ = other.kpiDescriptorList_;
                            bitField0_ = (bitField0_ & ~0x00000001);
                            kpiDescriptorListBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getKpiDescriptorListFieldBuilder() : null;
                        } else {
                            kpiDescriptorListBuilder_.addAllMessages(other.kpiDescriptorList_);
                        }
                    }
                }
                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:
                                {
                                    monitoring.Monitoring.KpiDescriptor m = input.readMessage(monitoring.Monitoring.KpiDescriptor.parser(), extensionRegistry);
                                    if (kpiDescriptorListBuilder_ == null) {
                                        ensureKpiDescriptorListIsMutable();
                                        kpiDescriptorList_.add(m);
                                    } else {
                                        kpiDescriptorListBuilder_.addMessage(m);
                                    }
                                    break;
                                }
                            // case 10
                            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.util.List<monitoring.Monitoring.KpiDescriptor> kpiDescriptorList_ = java.util.Collections.emptyList();

            private void ensureKpiDescriptorListIsMutable() {
                if (!((bitField0_ & 0x00000001) != 0)) {
                    kpiDescriptorList_ = new java.util.ArrayList<monitoring.Monitoring.KpiDescriptor>(kpiDescriptorList_);
                    bitField0_ |= 0x00000001;
                }
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<monitoring.Monitoring.KpiDescriptor, monitoring.Monitoring.KpiDescriptor.Builder, monitoring.Monitoring.KpiDescriptorOrBuilder> kpiDescriptorListBuilder_;

            /**
             * <code>repeated .monitoring.KpiDescriptor kpi_descriptor_list = 1;</code>
             */
            public java.util.List<monitoring.Monitoring.KpiDescriptor> getKpiDescriptorListList() {
                if (kpiDescriptorListBuilder_ == null) {
                    return java.util.Collections.unmodifiableList(kpiDescriptorList_);
                } else {
                    return kpiDescriptorListBuilder_.getMessageList();
                }
            }

            /**
             * <code>repeated .monitoring.KpiDescriptor kpi_descriptor_list = 1;</code>
             */
            public int getKpiDescriptorListCount() {
                if (kpiDescriptorListBuilder_ == null) {
                    return kpiDescriptorList_.size();
                } else {
                    return kpiDescriptorListBuilder_.getCount();
                }
            }

            /**
             * <code>repeated .monitoring.KpiDescriptor kpi_descriptor_list = 1;</code>
             */
            public monitoring.Monitoring.KpiDescriptor getKpiDescriptorList(int index) {
                if (kpiDescriptorListBuilder_ == null) {
                    return kpiDescriptorList_.get(index);
                } else {
                    return kpiDescriptorListBuilder_.getMessage(index);
                }
            }

            /**
             * <code>repeated .monitoring.KpiDescriptor kpi_descriptor_list = 1;</code>
             */
            public Builder setKpiDescriptorList(int index, monitoring.Monitoring.KpiDescriptor value) {
                if (kpiDescriptorListBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureKpiDescriptorListIsMutable();
                    kpiDescriptorList_.set(index, value);
                    onChanged();
                } else {
                    kpiDescriptorListBuilder_.setMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.KpiDescriptor kpi_descriptor_list = 1;</code>
             */
            public Builder setKpiDescriptorList(int index, monitoring.Monitoring.KpiDescriptor.Builder builderForValue) {
                if (kpiDescriptorListBuilder_ == null) {
                    ensureKpiDescriptorListIsMutable();
                    kpiDescriptorList_.set(index, builderForValue.build());
                    onChanged();
                } else {
                    kpiDescriptorListBuilder_.setMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.KpiDescriptor kpi_descriptor_list = 1;</code>
             */
            public Builder addKpiDescriptorList(monitoring.Monitoring.KpiDescriptor value) {
                if (kpiDescriptorListBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureKpiDescriptorListIsMutable();
                    kpiDescriptorList_.add(value);
                    onChanged();
                } else {
                    kpiDescriptorListBuilder_.addMessage(value);
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.KpiDescriptor kpi_descriptor_list = 1;</code>
             */
            public Builder addKpiDescriptorList(int index, monitoring.Monitoring.KpiDescriptor value) {
                if (kpiDescriptorListBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureKpiDescriptorListIsMutable();
                    kpiDescriptorList_.add(index, value);
                    onChanged();
                } else {
                    kpiDescriptorListBuilder_.addMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.KpiDescriptor kpi_descriptor_list = 1;</code>
             */
            public Builder addKpiDescriptorList(monitoring.Monitoring.KpiDescriptor.Builder builderForValue) {
                if (kpiDescriptorListBuilder_ == null) {
                    ensureKpiDescriptorListIsMutable();
                    kpiDescriptorList_.add(builderForValue.build());
                    onChanged();
                } else {
                    kpiDescriptorListBuilder_.addMessage(builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.KpiDescriptor kpi_descriptor_list = 1;</code>
             */
            public Builder addKpiDescriptorList(int index, monitoring.Monitoring.KpiDescriptor.Builder builderForValue) {
                if (kpiDescriptorListBuilder_ == null) {
                    ensureKpiDescriptorListIsMutable();
                    kpiDescriptorList_.add(index, builderForValue.build());
                    onChanged();
                } else {
                    kpiDescriptorListBuilder_.addMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.KpiDescriptor kpi_descriptor_list = 1;</code>
             */
            public Builder addAllKpiDescriptorList(java.lang.Iterable<? extends monitoring.Monitoring.KpiDescriptor> values) {
                if (kpiDescriptorListBuilder_ == null) {
                    ensureKpiDescriptorListIsMutable();
                    com.google.protobuf.AbstractMessageLite.Builder.addAll(values, kpiDescriptorList_);
                    onChanged();
                } else {
                    kpiDescriptorListBuilder_.addAllMessages(values);
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.KpiDescriptor kpi_descriptor_list = 1;</code>
             */
            public Builder clearKpiDescriptorList() {
                if (kpiDescriptorListBuilder_ == null) {
                    kpiDescriptorList_ = java.util.Collections.emptyList();
                    bitField0_ = (bitField0_ & ~0x00000001);
                    onChanged();
                } else {
                    kpiDescriptorListBuilder_.clear();
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.KpiDescriptor kpi_descriptor_list = 1;</code>
             */
            public Builder removeKpiDescriptorList(int index) {
                if (kpiDescriptorListBuilder_ == null) {
                    ensureKpiDescriptorListIsMutable();
                    kpiDescriptorList_.remove(index);
                    onChanged();
                } else {
                    kpiDescriptorListBuilder_.remove(index);
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.KpiDescriptor kpi_descriptor_list = 1;</code>
             */
            public monitoring.Monitoring.KpiDescriptor.Builder getKpiDescriptorListBuilder(int index) {
                return getKpiDescriptorListFieldBuilder().getBuilder(index);
            }

            /**
             * <code>repeated .monitoring.KpiDescriptor kpi_descriptor_list = 1;</code>
             */
            public monitoring.Monitoring.KpiDescriptorOrBuilder getKpiDescriptorListOrBuilder(int index) {
                if (kpiDescriptorListBuilder_ == null) {
                    return kpiDescriptorList_.get(index);
                } else {
                    return kpiDescriptorListBuilder_.getMessageOrBuilder(index);
                }
            }

            /**
             * <code>repeated .monitoring.KpiDescriptor kpi_descriptor_list = 1;</code>
             */
            public java.util.List<? extends monitoring.Monitoring.KpiDescriptorOrBuilder> getKpiDescriptorListOrBuilderList() {
                if (kpiDescriptorListBuilder_ != null) {
                    return kpiDescriptorListBuilder_.getMessageOrBuilderList();
                } else {
                    return java.util.Collections.unmodifiableList(kpiDescriptorList_);
                }
            }

            /**
             * <code>repeated .monitoring.KpiDescriptor kpi_descriptor_list = 1;</code>
             */
            public monitoring.Monitoring.KpiDescriptor.Builder addKpiDescriptorListBuilder() {
                return getKpiDescriptorListFieldBuilder().addBuilder(monitoring.Monitoring.KpiDescriptor.getDefaultInstance());
            }

            /**
             * <code>repeated .monitoring.KpiDescriptor kpi_descriptor_list = 1;</code>
             */
            public monitoring.Monitoring.KpiDescriptor.Builder addKpiDescriptorListBuilder(int index) {
                return getKpiDescriptorListFieldBuilder().addBuilder(index, monitoring.Monitoring.KpiDescriptor.getDefaultInstance());
            }

            /**
             * <code>repeated .monitoring.KpiDescriptor kpi_descriptor_list = 1;</code>
             */
            public java.util.List<monitoring.Monitoring.KpiDescriptor.Builder> getKpiDescriptorListBuilderList() {
                return getKpiDescriptorListFieldBuilder().getBuilderList();
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<monitoring.Monitoring.KpiDescriptor, monitoring.Monitoring.KpiDescriptor.Builder, monitoring.Monitoring.KpiDescriptorOrBuilder> getKpiDescriptorListFieldBuilder() {
                if (kpiDescriptorListBuilder_ == null) {
                    kpiDescriptorListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<monitoring.Monitoring.KpiDescriptor, monitoring.Monitoring.KpiDescriptor.Builder, monitoring.Monitoring.KpiDescriptorOrBuilder>(kpiDescriptorList_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean());
                    kpiDescriptorList_ = null;
                }
                return kpiDescriptorListBuilder_;
            }

            @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:monitoring.KpiDescriptorList)
        }

        // @@protoc_insertion_point(class_scope:monitoring.KpiDescriptorList)
        private static final monitoring.Monitoring.KpiDescriptorList DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new monitoring.Monitoring.KpiDescriptorList();
        }

        public static monitoring.Monitoring.KpiDescriptorList getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

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

            @java.lang.Override
            public KpiDescriptorList 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<KpiDescriptorList> parser() {
            return PARSER;
        }

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

        @java.lang.Override
        public monitoring.Monitoring.KpiDescriptorList getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    }

    public interface SubsDescriptorOrBuilder extends // @@protoc_insertion_point(interface_extends:monitoring.SubsDescriptor)
    com.google.protobuf.MessageOrBuilder {

        /**
         * <code>.monitoring.SubscriptionID subs_id = 1;</code>
         * @return Whether the subsId field is set.
         */
        boolean hasSubsId();

        /**
         * <code>.monitoring.SubscriptionID subs_id = 1;</code>
         * @return The subsId.
         */
        monitoring.Monitoring.SubscriptionID getSubsId();

        /**
         * <code>.monitoring.SubscriptionID subs_id = 1;</code>
         */
        monitoring.Monitoring.SubscriptionIDOrBuilder getSubsIdOrBuilder();

        /**
         * <code>.monitoring.KpiId kpi_id = 2;</code>
         * @return Whether the kpiId field is set.
         */
        boolean hasKpiId();

        /**
         * <code>.monitoring.KpiId kpi_id = 2;</code>
         * @return The kpiId.
         */
        monitoring.Monitoring.KpiId getKpiId();

        /**
         * <code>.monitoring.KpiId kpi_id = 2;</code>
         */
        monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder();

        /**
         * <code>float sampling_duration_s = 3;</code>
         * @return The samplingDurationS.
         */
        float getSamplingDurationS();

        /**
         * <code>float sampling_interval_s = 4;</code>
         * @return The samplingIntervalS.
         */
        float getSamplingIntervalS();

        /**
         * <pre>
         * used when you want something like "get the samples since X date/time"
         * </pre>
         *
         * <code>.context.Timestamp start_timestamp = 5;</code>
         * @return Whether the startTimestamp field is set.
         */
        boolean hasStartTimestamp();

        /**
         * <pre>
         * used when you want something like "get the samples since X date/time"
         * </pre>
         *
         * <code>.context.Timestamp start_timestamp = 5;</code>
         * @return The startTimestamp.
         */
        context.ContextOuterClass.Timestamp getStartTimestamp();

        /**
         * <pre>
         * used when you want something like "get the samples since X date/time"
         * </pre>
         *
         * <code>.context.Timestamp start_timestamp = 5;</code>
         */
        context.ContextOuterClass.TimestampOrBuilder getStartTimestampOrBuilder();

        /**
         * <pre>
         * used when you want something like "get the samples until X date/time"
         * </pre>
         *
         * <code>.context.Timestamp end_timestamp = 6;</code>
         * @return Whether the endTimestamp field is set.
         */
        boolean hasEndTimestamp();

        /**
         * <pre>
         * used when you want something like "get the samples until X date/time"
         * </pre>
         *
         * <code>.context.Timestamp end_timestamp = 6;</code>
         * @return The endTimestamp.
         */
        context.ContextOuterClass.Timestamp getEndTimestamp();

        /**
         * <pre>
         * used when you want something like "get the samples until X date/time"
         * </pre>
         *
         * <code>.context.Timestamp end_timestamp = 6;</code>
         */
        context.ContextOuterClass.TimestampOrBuilder getEndTimestampOrBuilder();
    }

    /**
     * Protobuf type {@code monitoring.SubsDescriptor}
     */
    public static final class SubsDescriptor extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:monitoring.SubsDescriptor)
    SubsDescriptorOrBuilder {

        private static final long serialVersionUID = 0L;

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

        private SubsDescriptor() {
        }

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

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return monitoring.Monitoring.internal_static_monitoring_SubsDescriptor_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            return monitoring.Monitoring.internal_static_monitoring_SubsDescriptor_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.SubsDescriptor.class, monitoring.Monitoring.SubsDescriptor.Builder.class);
        }

        public static final int SUBS_ID_FIELD_NUMBER = 1;

        private monitoring.Monitoring.SubscriptionID subsId_;

        /**
         * <code>.monitoring.SubscriptionID subs_id = 1;</code>
         * @return Whether the subsId field is set.
         */
        @java.lang.Override
        public boolean hasSubsId() {
            return subsId_ != null;
        }

        /**
         * <code>.monitoring.SubscriptionID subs_id = 1;</code>
         * @return The subsId.
         */
        @java.lang.Override
        public monitoring.Monitoring.SubscriptionID getSubsId() {
            return subsId_ == null ? monitoring.Monitoring.SubscriptionID.getDefaultInstance() : subsId_;
        }

        /**
         * <code>.monitoring.SubscriptionID subs_id = 1;</code>
         */
        @java.lang.Override
        public monitoring.Monitoring.SubscriptionIDOrBuilder getSubsIdOrBuilder() {
            return subsId_ == null ? monitoring.Monitoring.SubscriptionID.getDefaultInstance() : subsId_;
        }

        public static final int KPI_ID_FIELD_NUMBER = 2;

        private monitoring.Monitoring.KpiId kpiId_;

        /**
         * <code>.monitoring.KpiId kpi_id = 2;</code>
         * @return Whether the kpiId field is set.
         */
        @java.lang.Override
        public boolean hasKpiId() {
            return kpiId_ != null;
        }

        /**
         * <code>.monitoring.KpiId kpi_id = 2;</code>
         * @return The kpiId.
         */
        @java.lang.Override
        public monitoring.Monitoring.KpiId getKpiId() {
            return kpiId_ == null ? monitoring.Monitoring.KpiId.getDefaultInstance() : kpiId_;
        }

        /**
         * <code>.monitoring.KpiId kpi_id = 2;</code>
         */
        @java.lang.Override
        public monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder() {
            return kpiId_ == null ? monitoring.Monitoring.KpiId.getDefaultInstance() : kpiId_;
        }

        public static final int SAMPLING_DURATION_S_FIELD_NUMBER = 3;

        private float samplingDurationS_ = 0F;

        /**
         * <code>float sampling_duration_s = 3;</code>
         * @return The samplingDurationS.
         */
        @java.lang.Override
        public float getSamplingDurationS() {
            return samplingDurationS_;
        }

        public static final int SAMPLING_INTERVAL_S_FIELD_NUMBER = 4;

        private float samplingIntervalS_ = 0F;

        /**
         * <code>float sampling_interval_s = 4;</code>
         * @return The samplingIntervalS.
         */
        @java.lang.Override
        public float getSamplingIntervalS() {
            return samplingIntervalS_;
        }

        public static final int START_TIMESTAMP_FIELD_NUMBER = 5;

        private context.ContextOuterClass.Timestamp startTimestamp_;

        /**
         * <pre>
         * used when you want something like "get the samples since X date/time"
         * </pre>
         *
         * <code>.context.Timestamp start_timestamp = 5;</code>
         * @return Whether the startTimestamp field is set.
         */
        @java.lang.Override
        public boolean hasStartTimestamp() {
            return startTimestamp_ != null;
        }

        /**
         * <pre>
         * used when you want something like "get the samples since X date/time"
         * </pre>
         *
         * <code>.context.Timestamp start_timestamp = 5;</code>
         * @return The startTimestamp.
         */
        @java.lang.Override
        public context.ContextOuterClass.Timestamp getStartTimestamp() {
            return startTimestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : startTimestamp_;
        }

        /**
         * <pre>
         * used when you want something like "get the samples since X date/time"
         * </pre>
         *
         * <code>.context.Timestamp start_timestamp = 5;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.TimestampOrBuilder getStartTimestampOrBuilder() {
            return startTimestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : startTimestamp_;
        }

        public static final int END_TIMESTAMP_FIELD_NUMBER = 6;

        private context.ContextOuterClass.Timestamp endTimestamp_;

        /**
         * <pre>
         * used when you want something like "get the samples until X date/time"
         * </pre>
         *
         * <code>.context.Timestamp end_timestamp = 6;</code>
         * @return Whether the endTimestamp field is set.
         */
        @java.lang.Override
        public boolean hasEndTimestamp() {
            return endTimestamp_ != null;
        }

        /**
         * <pre>
         * used when you want something like "get the samples until X date/time"
         * </pre>
         *
         * <code>.context.Timestamp end_timestamp = 6;</code>
         * @return The endTimestamp.
         */
        @java.lang.Override
        public context.ContextOuterClass.Timestamp getEndTimestamp() {
            return endTimestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : endTimestamp_;
        }

        /**
         * <pre>
         * used when you want something like "get the samples until X date/time"
         * </pre>
         *
         * <code>.context.Timestamp end_timestamp = 6;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.TimestampOrBuilder getEndTimestampOrBuilder() {
            return endTimestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : endTimestamp_;
        }

        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 (subsId_ != null) {
                output.writeMessage(1, getSubsId());
            }
            if (kpiId_ != null) {
                output.writeMessage(2, getKpiId());
            }
            if (java.lang.Float.floatToRawIntBits(samplingDurationS_) != 0) {
                output.writeFloat(3, samplingDurationS_);
            }
            if (java.lang.Float.floatToRawIntBits(samplingIntervalS_) != 0) {
                output.writeFloat(4, samplingIntervalS_);
            }
            if (startTimestamp_ != null) {
                output.writeMessage(5, getStartTimestamp());
            }
            if (endTimestamp_ != null) {
                output.writeMessage(6, getEndTimestamp());
            }
            getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;
            size = 0;
            if (subsId_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getSubsId());
            }
            if (kpiId_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getKpiId());
            }
            if (java.lang.Float.floatToRawIntBits(samplingDurationS_) != 0) {
                size += com.google.protobuf.CodedOutputStream.computeFloatSize(3, samplingDurationS_);
            }
            if (java.lang.Float.floatToRawIntBits(samplingIntervalS_) != 0) {
                size += com.google.protobuf.CodedOutputStream.computeFloatSize(4, samplingIntervalS_);
            }
            if (startTimestamp_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getStartTimestamp());
            }
            if (endTimestamp_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, getEndTimestamp());
            }
            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 monitoring.Monitoring.SubsDescriptor)) {
                return super.equals(obj);
            }
            monitoring.Monitoring.SubsDescriptor other = (monitoring.Monitoring.SubsDescriptor) obj;
            if (hasSubsId() != other.hasSubsId())
                return false;
            if (hasSubsId()) {
                if (!getSubsId().equals(other.getSubsId()))
                    return false;
            }
            if (hasKpiId() != other.hasKpiId())
                return false;
            if (hasKpiId()) {
                if (!getKpiId().equals(other.getKpiId()))
                    return false;
            }
            if (java.lang.Float.floatToIntBits(getSamplingDurationS()) != java.lang.Float.floatToIntBits(other.getSamplingDurationS()))
                return false;
            if (java.lang.Float.floatToIntBits(getSamplingIntervalS()) != java.lang.Float.floatToIntBits(other.getSamplingIntervalS()))
                return false;
            if (hasStartTimestamp() != other.hasStartTimestamp())
                return false;
            if (hasStartTimestamp()) {
                if (!getStartTimestamp().equals(other.getStartTimestamp()))
                    return false;
            }
            if (hasEndTimestamp() != other.hasEndTimestamp())
                return false;
            if (hasEndTimestamp()) {
                if (!getEndTimestamp().equals(other.getEndTimestamp()))
                    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();
            if (hasSubsId()) {
                hash = (37 * hash) + SUBS_ID_FIELD_NUMBER;
                hash = (53 * hash) + getSubsId().hashCode();
            }
            if (hasKpiId()) {
                hash = (37 * hash) + KPI_ID_FIELD_NUMBER;
                hash = (53 * hash) + getKpiId().hashCode();
            }
            hash = (37 * hash) + SAMPLING_DURATION_S_FIELD_NUMBER;
            hash = (53 * hash) + java.lang.Float.floatToIntBits(getSamplingDurationS());
            hash = (37 * hash) + SAMPLING_INTERVAL_S_FIELD_NUMBER;
            hash = (53 * hash) + java.lang.Float.floatToIntBits(getSamplingIntervalS());
            if (hasStartTimestamp()) {
                hash = (37 * hash) + START_TIMESTAMP_FIELD_NUMBER;
                hash = (53 * hash) + getStartTimestamp().hashCode();
            }
            if (hasEndTimestamp()) {
                hash = (37 * hash) + END_TIMESTAMP_FIELD_NUMBER;
                hash = (53 * hash) + getEndTimestamp().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static monitoring.Monitoring.SubsDescriptor parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.SubsDescriptor parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.SubsDescriptor parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.SubsDescriptor parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.SubsDescriptor parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.SubsDescriptor parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.SubsDescriptor parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.SubsDescriptor 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 monitoring.Monitoring.SubsDescriptor parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.SubsDescriptor 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 monitoring.Monitoring.SubsDescriptor parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.SubsDescriptor 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(monitoring.Monitoring.SubsDescriptor 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;
        }

        /**
         * Protobuf type {@code monitoring.SubsDescriptor}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:monitoring.SubsDescriptor)
        monitoring.Monitoring.SubsDescriptorOrBuilder {

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return monitoring.Monitoring.internal_static_monitoring_SubsDescriptor_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
                return monitoring.Monitoring.internal_static_monitoring_SubsDescriptor_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.SubsDescriptor.class, monitoring.Monitoring.SubsDescriptor.Builder.class);
            }

            // Construct using monitoring.Monitoring.SubsDescriptor.newBuilder()
            private Builder() {
            }

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

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                subsId_ = null;
                if (subsIdBuilder_ != null) {
                    subsIdBuilder_.dispose();
                    subsIdBuilder_ = null;
                }
                kpiId_ = null;
                if (kpiIdBuilder_ != null) {
                    kpiIdBuilder_.dispose();
                    kpiIdBuilder_ = null;
                }
                samplingDurationS_ = 0F;
                samplingIntervalS_ = 0F;
                startTimestamp_ = null;
                if (startTimestampBuilder_ != null) {
                    startTimestampBuilder_.dispose();
                    startTimestampBuilder_ = null;
                }
                endTimestamp_ = null;
                if (endTimestampBuilder_ != null) {
                    endTimestampBuilder_.dispose();
                    endTimestampBuilder_ = null;
                }
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return monitoring.Monitoring.internal_static_monitoring_SubsDescriptor_descriptor;
            }

            @java.lang.Override
            public monitoring.Monitoring.SubsDescriptor getDefaultInstanceForType() {
                return monitoring.Monitoring.SubsDescriptor.getDefaultInstance();
            }

            @java.lang.Override
            public monitoring.Monitoring.SubsDescriptor build() {
                monitoring.Monitoring.SubsDescriptor result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public monitoring.Monitoring.SubsDescriptor buildPartial() {
                monitoring.Monitoring.SubsDescriptor result = new monitoring.Monitoring.SubsDescriptor(this);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                }
                onBuilt();
                return result;
            }

            private void buildPartial0(monitoring.Monitoring.SubsDescriptor result) {
                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    result.subsId_ = subsIdBuilder_ == null ? subsId_ : subsIdBuilder_.build();
                }
                if (((from_bitField0_ & 0x00000002) != 0)) {
                    result.kpiId_ = kpiIdBuilder_ == null ? kpiId_ : kpiIdBuilder_.build();
                }
                if (((from_bitField0_ & 0x00000004) != 0)) {
                    result.samplingDurationS_ = samplingDurationS_;
                }
                if (((from_bitField0_ & 0x00000008) != 0)) {
                    result.samplingIntervalS_ = samplingIntervalS_;
                }
                if (((from_bitField0_ & 0x00000010) != 0)) {
                    result.startTimestamp_ = startTimestampBuilder_ == null ? startTimestamp_ : startTimestampBuilder_.build();
                }
                if (((from_bitField0_ & 0x00000020) != 0)) {
                    result.endTimestamp_ = endTimestampBuilder_ == null ? endTimestamp_ : endTimestampBuilder_.build();
                }
            }

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

            public Builder mergeFrom(monitoring.Monitoring.SubsDescriptor other) {
                if (other == monitoring.Monitoring.SubsDescriptor.getDefaultInstance())
                    return this;
                if (other.hasSubsId()) {
                    mergeSubsId(other.getSubsId());
                }
                if (other.hasKpiId()) {
                    mergeKpiId(other.getKpiId());
                }
                if (other.getSamplingDurationS() != 0F) {
                    setSamplingDurationS(other.getSamplingDurationS());
                }
                if (other.getSamplingIntervalS() != 0F) {
                    setSamplingIntervalS(other.getSamplingIntervalS());
                }
                if (other.hasStartTimestamp()) {
                    mergeStartTimestamp(other.getStartTimestamp());
                }
                if (other.hasEndTimestamp()) {
                    mergeEndTimestamp(other.getEndTimestamp());
                }
                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:
                                {
                                    input.readMessage(getSubsIdFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000001;
                                    break;
                                }
                            // case 10
                            case 18:
                                {
                                    input.readMessage(getKpiIdFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000002;
                                    break;
                                }
                            // case 18
                            case 29:
                                {
                                    samplingDurationS_ = input.readFloat();
                                    bitField0_ |= 0x00000004;
                                    break;
                                }
                            // case 29
                            case 37:
                                {
                                    samplingIntervalS_ = input.readFloat();
                                    bitField0_ |= 0x00000008;
                                    break;
                                }
                            // case 37
                            case 42:
                                {
                                    input.readMessage(getStartTimestampFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000010;
                                    break;
                                }
                            // case 42
                            case 50:
                                {
                                    input.readMessage(getEndTimestampFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000020;
                                    break;
                                }
                            // case 50
                            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 monitoring.Monitoring.SubscriptionID subsId_;

            private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.SubscriptionID, monitoring.Monitoring.SubscriptionID.Builder, monitoring.Monitoring.SubscriptionIDOrBuilder> subsIdBuilder_;

            /**
             * <code>.monitoring.SubscriptionID subs_id = 1;</code>
             * @return Whether the subsId field is set.
             */
            public boolean hasSubsId() {
                return ((bitField0_ & 0x00000001) != 0);
            }

            /**
             * <code>.monitoring.SubscriptionID subs_id = 1;</code>
             * @return The subsId.
             */
            public monitoring.Monitoring.SubscriptionID getSubsId() {
                if (subsIdBuilder_ == null) {
                    return subsId_ == null ? monitoring.Monitoring.SubscriptionID.getDefaultInstance() : subsId_;
                } else {
                    return subsIdBuilder_.getMessage();
                }
            }

            /**
             * <code>.monitoring.SubscriptionID subs_id = 1;</code>
             */
            public Builder setSubsId(monitoring.Monitoring.SubscriptionID value) {
                if (subsIdBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    subsId_ = value;
                } else {
                    subsIdBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.SubscriptionID subs_id = 1;</code>
             */
            public Builder setSubsId(monitoring.Monitoring.SubscriptionID.Builder builderForValue) {
                if (subsIdBuilder_ == null) {
                    subsId_ = builderForValue.build();
                } else {
                    subsIdBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.SubscriptionID subs_id = 1;</code>
             */
            public Builder mergeSubsId(monitoring.Monitoring.SubscriptionID value) {
                if (subsIdBuilder_ == null) {
                    if (((bitField0_ & 0x00000001) != 0) && subsId_ != null && subsId_ != monitoring.Monitoring.SubscriptionID.getDefaultInstance()) {
                        getSubsIdBuilder().mergeFrom(value);
                    } else {
                        subsId_ = value;
                    }
                } else {
                    subsIdBuilder_.mergeFrom(value);
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.SubscriptionID subs_id = 1;</code>
             */
            public Builder clearSubsId() {
                bitField0_ = (bitField0_ & ~0x00000001);
                subsId_ = null;
                if (subsIdBuilder_ != null) {
                    subsIdBuilder_.dispose();
                    subsIdBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.SubscriptionID subs_id = 1;</code>
             */
            public monitoring.Monitoring.SubscriptionID.Builder getSubsIdBuilder() {
                bitField0_ |= 0x00000001;
                onChanged();
                return getSubsIdFieldBuilder().getBuilder();
            }

            /**
             * <code>.monitoring.SubscriptionID subs_id = 1;</code>
             */
            public monitoring.Monitoring.SubscriptionIDOrBuilder getSubsIdOrBuilder() {
                if (subsIdBuilder_ != null) {
                    return subsIdBuilder_.getMessageOrBuilder();
                } else {
                    return subsId_ == null ? monitoring.Monitoring.SubscriptionID.getDefaultInstance() : subsId_;
                }
            }

            /**
             * <code>.monitoring.SubscriptionID subs_id = 1;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.SubscriptionID, monitoring.Monitoring.SubscriptionID.Builder, monitoring.Monitoring.SubscriptionIDOrBuilder> getSubsIdFieldBuilder() {
                if (subsIdBuilder_ == null) {
                    subsIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.SubscriptionID, monitoring.Monitoring.SubscriptionID.Builder, monitoring.Monitoring.SubscriptionIDOrBuilder>(getSubsId(), getParentForChildren(), isClean());
                    subsId_ = null;
                }
                return subsIdBuilder_;
            }

            private monitoring.Monitoring.KpiId kpiId_;

            private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder> kpiIdBuilder_;

            /**
             * <code>.monitoring.KpiId kpi_id = 2;</code>
             * @return Whether the kpiId field is set.
             */
            public boolean hasKpiId() {
                return ((bitField0_ & 0x00000002) != 0);
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 2;</code>
             * @return The kpiId.
             */
            public monitoring.Monitoring.KpiId getKpiId() {
                if (kpiIdBuilder_ == null) {
                    return kpiId_ == null ? monitoring.Monitoring.KpiId.getDefaultInstance() : kpiId_;
                } else {
                    return kpiIdBuilder_.getMessage();
                }
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 2;</code>
             */
            public Builder setKpiId(monitoring.Monitoring.KpiId value) {
                if (kpiIdBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    kpiId_ = value;
                } else {
                    kpiIdBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 2;</code>
             */
            public Builder setKpiId(monitoring.Monitoring.KpiId.Builder builderForValue) {
                if (kpiIdBuilder_ == null) {
                    kpiId_ = builderForValue.build();
                } else {
                    kpiIdBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 2;</code>
             */
            public Builder mergeKpiId(monitoring.Monitoring.KpiId value) {
                if (kpiIdBuilder_ == null) {
                    if (((bitField0_ & 0x00000002) != 0) && kpiId_ != null && kpiId_ != monitoring.Monitoring.KpiId.getDefaultInstance()) {
                        getKpiIdBuilder().mergeFrom(value);
                    } else {
                        kpiId_ = value;
                    }
                } else {
                    kpiIdBuilder_.mergeFrom(value);
                }
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 2;</code>
             */
            public Builder clearKpiId() {
                bitField0_ = (bitField0_ & ~0x00000002);
                kpiId_ = null;
                if (kpiIdBuilder_ != null) {
                    kpiIdBuilder_.dispose();
                    kpiIdBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 2;</code>
             */
            public monitoring.Monitoring.KpiId.Builder getKpiIdBuilder() {
                bitField0_ |= 0x00000002;
                onChanged();
                return getKpiIdFieldBuilder().getBuilder();
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 2;</code>
             */
            public monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder() {
                if (kpiIdBuilder_ != null) {
                    return kpiIdBuilder_.getMessageOrBuilder();
                } else {
                    return kpiId_ == null ? monitoring.Monitoring.KpiId.getDefaultInstance() : kpiId_;
                }
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 2;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder> getKpiIdFieldBuilder() {
                if (kpiIdBuilder_ == null) {
                    kpiIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder>(getKpiId(), getParentForChildren(), isClean());
                    kpiId_ = null;
                }
                return kpiIdBuilder_;
            }

            private float samplingDurationS_;

            /**
             * <code>float sampling_duration_s = 3;</code>
             * @return The samplingDurationS.
             */
            @java.lang.Override
            public float getSamplingDurationS() {
                return samplingDurationS_;
            }

            /**
             * <code>float sampling_duration_s = 3;</code>
             * @param value The samplingDurationS to set.
             * @return This builder for chaining.
             */
            public Builder setSamplingDurationS(float value) {
                samplingDurationS_ = value;
                bitField0_ |= 0x00000004;
                onChanged();
                return this;
            }

            /**
             * <code>float sampling_duration_s = 3;</code>
             * @return This builder for chaining.
             */
            public Builder clearSamplingDurationS() {
                bitField0_ = (bitField0_ & ~0x00000004);
                samplingDurationS_ = 0F;
                onChanged();
                return this;
            }

            private float samplingIntervalS_;

            /**
             * <code>float sampling_interval_s = 4;</code>
             * @return The samplingIntervalS.
             */
            @java.lang.Override
            public float getSamplingIntervalS() {
                return samplingIntervalS_;
            }

            /**
             * <code>float sampling_interval_s = 4;</code>
             * @param value The samplingIntervalS to set.
             * @return This builder for chaining.
             */
            public Builder setSamplingIntervalS(float value) {
                samplingIntervalS_ = value;
                bitField0_ |= 0x00000008;
                onChanged();
                return this;
            }

            /**
             * <code>float sampling_interval_s = 4;</code>
             * @return This builder for chaining.
             */
            public Builder clearSamplingIntervalS() {
                bitField0_ = (bitField0_ & ~0x00000008);
                samplingIntervalS_ = 0F;
                onChanged();
                return this;
            }

            private context.ContextOuterClass.Timestamp startTimestamp_;

            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Timestamp, context.ContextOuterClass.Timestamp.Builder, context.ContextOuterClass.TimestampOrBuilder> startTimestampBuilder_;

            /**
             * <pre>
             * used when you want something like "get the samples since X date/time"
             * </pre>
             *
             * <code>.context.Timestamp start_timestamp = 5;</code>
             * @return Whether the startTimestamp field is set.
             */
            public boolean hasStartTimestamp() {
                return ((bitField0_ & 0x00000010) != 0);
            }

            /**
             * <pre>
             * used when you want something like "get the samples since X date/time"
             * </pre>
             *
             * <code>.context.Timestamp start_timestamp = 5;</code>
             * @return The startTimestamp.
             */
            public context.ContextOuterClass.Timestamp getStartTimestamp() {
                if (startTimestampBuilder_ == null) {
                    return startTimestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : startTimestamp_;
                } else {
                    return startTimestampBuilder_.getMessage();
                }
            }

            /**
             * <pre>
             * used when you want something like "get the samples since X date/time"
             * </pre>
             *
             * <code>.context.Timestamp start_timestamp = 5;</code>
             */
            public Builder setStartTimestamp(context.ContextOuterClass.Timestamp value) {
                if (startTimestampBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    startTimestamp_ = value;
                } else {
                    startTimestampBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000010;
                onChanged();
                return this;
            }

            /**
             * <pre>
             * used when you want something like "get the samples since X date/time"
             * </pre>
             *
             * <code>.context.Timestamp start_timestamp = 5;</code>
             */
            public Builder setStartTimestamp(context.ContextOuterClass.Timestamp.Builder builderForValue) {
                if (startTimestampBuilder_ == null) {
                    startTimestamp_ = builderForValue.build();
                } else {
                    startTimestampBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000010;
                onChanged();
                return this;
            }

            /**
             * <pre>
             * used when you want something like "get the samples since X date/time"
             * </pre>
             *
             * <code>.context.Timestamp start_timestamp = 5;</code>
             */
            public Builder mergeStartTimestamp(context.ContextOuterClass.Timestamp value) {
                if (startTimestampBuilder_ == null) {
                    if (((bitField0_ & 0x00000010) != 0) && startTimestamp_ != null && startTimestamp_ != context.ContextOuterClass.Timestamp.getDefaultInstance()) {
                        getStartTimestampBuilder().mergeFrom(value);
                    } else {
                        startTimestamp_ = value;
                    }
                } else {
                    startTimestampBuilder_.mergeFrom(value);
                }
                bitField0_ |= 0x00000010;
                onChanged();
                return this;
            }

            /**
             * <pre>
             * used when you want something like "get the samples since X date/time"
             * </pre>
             *
             * <code>.context.Timestamp start_timestamp = 5;</code>
             */
            public Builder clearStartTimestamp() {
                bitField0_ = (bitField0_ & ~0x00000010);
                startTimestamp_ = null;
                if (startTimestampBuilder_ != null) {
                    startTimestampBuilder_.dispose();
                    startTimestampBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <pre>
             * used when you want something like "get the samples since X date/time"
             * </pre>
             *
             * <code>.context.Timestamp start_timestamp = 5;</code>
             */
            public context.ContextOuterClass.Timestamp.Builder getStartTimestampBuilder() {
                bitField0_ |= 0x00000010;
                onChanged();
                return getStartTimestampFieldBuilder().getBuilder();
            }

            /**
             * <pre>
             * used when you want something like "get the samples since X date/time"
             * </pre>
             *
             * <code>.context.Timestamp start_timestamp = 5;</code>
             */
            public context.ContextOuterClass.TimestampOrBuilder getStartTimestampOrBuilder() {
                if (startTimestampBuilder_ != null) {
                    return startTimestampBuilder_.getMessageOrBuilder();
                } else {
                    return startTimestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : startTimestamp_;
                }
            }

            /**
             * <pre>
             * used when you want something like "get the samples since X date/time"
             * </pre>
             *
             * <code>.context.Timestamp start_timestamp = 5;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Timestamp, context.ContextOuterClass.Timestamp.Builder, context.ContextOuterClass.TimestampOrBuilder> getStartTimestampFieldBuilder() {
                if (startTimestampBuilder_ == null) {
                    startTimestampBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Timestamp, context.ContextOuterClass.Timestamp.Builder, context.ContextOuterClass.TimestampOrBuilder>(getStartTimestamp(), getParentForChildren(), isClean());
                    startTimestamp_ = null;
                }
                return startTimestampBuilder_;
            }

            private context.ContextOuterClass.Timestamp endTimestamp_;

            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Timestamp, context.ContextOuterClass.Timestamp.Builder, context.ContextOuterClass.TimestampOrBuilder> endTimestampBuilder_;

            /**
             * <pre>
             * used when you want something like "get the samples until X date/time"
             * </pre>
             *
             * <code>.context.Timestamp end_timestamp = 6;</code>
             * @return Whether the endTimestamp field is set.
             */
            public boolean hasEndTimestamp() {
                return ((bitField0_ & 0x00000020) != 0);
            }

            /**
             * <pre>
             * used when you want something like "get the samples until X date/time"
             * </pre>
             *
             * <code>.context.Timestamp end_timestamp = 6;</code>
             * @return The endTimestamp.
             */
            public context.ContextOuterClass.Timestamp getEndTimestamp() {
                if (endTimestampBuilder_ == null) {
                    return endTimestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : endTimestamp_;
                } else {
                    return endTimestampBuilder_.getMessage();
                }
            }

            /**
             * <pre>
             * used when you want something like "get the samples until X date/time"
             * </pre>
             *
             * <code>.context.Timestamp end_timestamp = 6;</code>
             */
            public Builder setEndTimestamp(context.ContextOuterClass.Timestamp value) {
                if (endTimestampBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    endTimestamp_ = value;
                } else {
                    endTimestampBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000020;
                onChanged();
                return this;
            }

            /**
             * <pre>
             * used when you want something like "get the samples until X date/time"
             * </pre>
             *
             * <code>.context.Timestamp end_timestamp = 6;</code>
             */
            public Builder setEndTimestamp(context.ContextOuterClass.Timestamp.Builder builderForValue) {
                if (endTimestampBuilder_ == null) {
                    endTimestamp_ = builderForValue.build();
                } else {
                    endTimestampBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000020;
                onChanged();
                return this;
            }

            /**
             * <pre>
             * used when you want something like "get the samples until X date/time"
             * </pre>
             *
             * <code>.context.Timestamp end_timestamp = 6;</code>
             */
            public Builder mergeEndTimestamp(context.ContextOuterClass.Timestamp value) {
                if (endTimestampBuilder_ == null) {
                    if (((bitField0_ & 0x00000020) != 0) && endTimestamp_ != null && endTimestamp_ != context.ContextOuterClass.Timestamp.getDefaultInstance()) {
                        getEndTimestampBuilder().mergeFrom(value);
                    } else {
                        endTimestamp_ = value;
                    }
                } else {
                    endTimestampBuilder_.mergeFrom(value);
                }
                bitField0_ |= 0x00000020;
                onChanged();
                return this;
            }

            /**
             * <pre>
             * used when you want something like "get the samples until X date/time"
             * </pre>
             *
             * <code>.context.Timestamp end_timestamp = 6;</code>
             */
            public Builder clearEndTimestamp() {
                bitField0_ = (bitField0_ & ~0x00000020);
                endTimestamp_ = null;
                if (endTimestampBuilder_ != null) {
                    endTimestampBuilder_.dispose();
                    endTimestampBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <pre>
             * used when you want something like "get the samples until X date/time"
             * </pre>
             *
             * <code>.context.Timestamp end_timestamp = 6;</code>
             */
            public context.ContextOuterClass.Timestamp.Builder getEndTimestampBuilder() {
                bitField0_ |= 0x00000020;
                onChanged();
                return getEndTimestampFieldBuilder().getBuilder();
            }

            /**
             * <pre>
             * used when you want something like "get the samples until X date/time"
             * </pre>
             *
             * <code>.context.Timestamp end_timestamp = 6;</code>
             */
            public context.ContextOuterClass.TimestampOrBuilder getEndTimestampOrBuilder() {
                if (endTimestampBuilder_ != null) {
                    return endTimestampBuilder_.getMessageOrBuilder();
                } else {
                    return endTimestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : endTimestamp_;
                }
            }

            /**
             * <pre>
             * used when you want something like "get the samples until X date/time"
             * </pre>
             *
             * <code>.context.Timestamp end_timestamp = 6;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Timestamp, context.ContextOuterClass.Timestamp.Builder, context.ContextOuterClass.TimestampOrBuilder> getEndTimestampFieldBuilder() {
                if (endTimestampBuilder_ == null) {
                    endTimestampBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Timestamp, context.ContextOuterClass.Timestamp.Builder, context.ContextOuterClass.TimestampOrBuilder>(getEndTimestamp(), getParentForChildren(), isClean());
                    endTimestamp_ = null;
                }
                return endTimestampBuilder_;
            }

            @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:monitoring.SubsDescriptor)
        }

        // @@protoc_insertion_point(class_scope:monitoring.SubsDescriptor)
        private static final monitoring.Monitoring.SubsDescriptor DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new monitoring.Monitoring.SubsDescriptor();
        }

        public static monitoring.Monitoring.SubsDescriptor getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

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

            @java.lang.Override
            public SubsDescriptor 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<SubsDescriptor> parser() {
            return PARSER;
        }

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

        @java.lang.Override
        public monitoring.Monitoring.SubsDescriptor getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    }

    public interface SubscriptionIDOrBuilder extends // @@protoc_insertion_point(interface_extends:monitoring.SubscriptionID)
    com.google.protobuf.MessageOrBuilder {

        /**
         * <code>.context.Uuid subs_id = 1;</code>
         * @return Whether the subsId field is set.
         */
        boolean hasSubsId();

        /**
         * <code>.context.Uuid subs_id = 1;</code>
         * @return The subsId.
         */
        context.ContextOuterClass.Uuid getSubsId();

        /**
         * <code>.context.Uuid subs_id = 1;</code>
         */
        context.ContextOuterClass.UuidOrBuilder getSubsIdOrBuilder();
    }

    /**
     * Protobuf type {@code monitoring.SubscriptionID}
     */
    public static final class SubscriptionID extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:monitoring.SubscriptionID)
    SubscriptionIDOrBuilder {

        private static final long serialVersionUID = 0L;

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

        private SubscriptionID() {
        }

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

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return monitoring.Monitoring.internal_static_monitoring_SubscriptionID_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            return monitoring.Monitoring.internal_static_monitoring_SubscriptionID_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.SubscriptionID.class, monitoring.Monitoring.SubscriptionID.Builder.class);
        }

        public static final int SUBS_ID_FIELD_NUMBER = 1;

        private context.ContextOuterClass.Uuid subsId_;

        /**
         * <code>.context.Uuid subs_id = 1;</code>
         * @return Whether the subsId field is set.
         */
        @java.lang.Override
        public boolean hasSubsId() {
            return subsId_ != null;
        }

        /**
         * <code>.context.Uuid subs_id = 1;</code>
         * @return The subsId.
         */
        @java.lang.Override
        public context.ContextOuterClass.Uuid getSubsId() {
            return subsId_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : subsId_;
        }

        /**
         * <code>.context.Uuid subs_id = 1;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.UuidOrBuilder getSubsIdOrBuilder() {
            return subsId_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : subsId_;
        }

        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 (subsId_ != null) {
                output.writeMessage(1, getSubsId());
            }
            getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;
            size = 0;
            if (subsId_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getSubsId());
            }
            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 monitoring.Monitoring.SubscriptionID)) {
                return super.equals(obj);
            }
            monitoring.Monitoring.SubscriptionID other = (monitoring.Monitoring.SubscriptionID) obj;
            if (hasSubsId() != other.hasSubsId())
                return false;
            if (hasSubsId()) {
                if (!getSubsId().equals(other.getSubsId()))
                    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();
            if (hasSubsId()) {
                hash = (37 * hash) + SUBS_ID_FIELD_NUMBER;
                hash = (53 * hash) + getSubsId().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static monitoring.Monitoring.SubscriptionID parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.SubscriptionID parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.SubscriptionID parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.SubscriptionID parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.SubscriptionID parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.SubscriptionID parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.SubscriptionID parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.SubscriptionID 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 monitoring.Monitoring.SubscriptionID parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.SubscriptionID 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 monitoring.Monitoring.SubscriptionID parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.SubscriptionID 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(monitoring.Monitoring.SubscriptionID 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;
        }

        /**
         * Protobuf type {@code monitoring.SubscriptionID}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:monitoring.SubscriptionID)
        monitoring.Monitoring.SubscriptionIDOrBuilder {

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return monitoring.Monitoring.internal_static_monitoring_SubscriptionID_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
                return monitoring.Monitoring.internal_static_monitoring_SubscriptionID_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.SubscriptionID.class, monitoring.Monitoring.SubscriptionID.Builder.class);
            }

            // Construct using monitoring.Monitoring.SubscriptionID.newBuilder()
            private Builder() {
            }

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

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                subsId_ = null;
                if (subsIdBuilder_ != null) {
                    subsIdBuilder_.dispose();
                    subsIdBuilder_ = null;
                }
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return monitoring.Monitoring.internal_static_monitoring_SubscriptionID_descriptor;
            }

            @java.lang.Override
            public monitoring.Monitoring.SubscriptionID getDefaultInstanceForType() {
                return monitoring.Monitoring.SubscriptionID.getDefaultInstance();
            }

            @java.lang.Override
            public monitoring.Monitoring.SubscriptionID build() {
                monitoring.Monitoring.SubscriptionID result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public monitoring.Monitoring.SubscriptionID buildPartial() {
                monitoring.Monitoring.SubscriptionID result = new monitoring.Monitoring.SubscriptionID(this);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                }
                onBuilt();
                return result;
            }

            private void buildPartial0(monitoring.Monitoring.SubscriptionID result) {
                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    result.subsId_ = subsIdBuilder_ == null ? subsId_ : subsIdBuilder_.build();
                }
            }

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

            public Builder mergeFrom(monitoring.Monitoring.SubscriptionID other) {
                if (other == monitoring.Monitoring.SubscriptionID.getDefaultInstance())
                    return this;
                if (other.hasSubsId()) {
                    mergeSubsId(other.getSubsId());
                }
                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:
                                {
                                    input.readMessage(getSubsIdFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000001;
                                    break;
                                }
                            // case 10
                            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 context.ContextOuterClass.Uuid subsId_;

            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> subsIdBuilder_;

            /**
             * <code>.context.Uuid subs_id = 1;</code>
             * @return Whether the subsId field is set.
             */
            public boolean hasSubsId() {
                return ((bitField0_ & 0x00000001) != 0);
            }

            /**
             * <code>.context.Uuid subs_id = 1;</code>
             * @return The subsId.
             */
            public context.ContextOuterClass.Uuid getSubsId() {
                if (subsIdBuilder_ == null) {
                    return subsId_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : subsId_;
                } else {
                    return subsIdBuilder_.getMessage();
                }
            }

            /**
             * <code>.context.Uuid subs_id = 1;</code>
             */
            public Builder setSubsId(context.ContextOuterClass.Uuid value) {
                if (subsIdBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    subsId_ = value;
                } else {
                    subsIdBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.context.Uuid subs_id = 1;</code>
             */
            public Builder setSubsId(context.ContextOuterClass.Uuid.Builder builderForValue) {
                if (subsIdBuilder_ == null) {
                    subsId_ = builderForValue.build();
                } else {
                    subsIdBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.context.Uuid subs_id = 1;</code>
             */
            public Builder mergeSubsId(context.ContextOuterClass.Uuid value) {
                if (subsIdBuilder_ == null) {
                    if (((bitField0_ & 0x00000001) != 0) && subsId_ != null && subsId_ != context.ContextOuterClass.Uuid.getDefaultInstance()) {
                        getSubsIdBuilder().mergeFrom(value);
                    } else {
                        subsId_ = value;
                    }
                } else {
                    subsIdBuilder_.mergeFrom(value);
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.context.Uuid subs_id = 1;</code>
             */
            public Builder clearSubsId() {
                bitField0_ = (bitField0_ & ~0x00000001);
                subsId_ = null;
                if (subsIdBuilder_ != null) {
                    subsIdBuilder_.dispose();
                    subsIdBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <code>.context.Uuid subs_id = 1;</code>
             */
            public context.ContextOuterClass.Uuid.Builder getSubsIdBuilder() {
                bitField0_ |= 0x00000001;
                onChanged();
                return getSubsIdFieldBuilder().getBuilder();
            }

            /**
             * <code>.context.Uuid subs_id = 1;</code>
             */
            public context.ContextOuterClass.UuidOrBuilder getSubsIdOrBuilder() {
                if (subsIdBuilder_ != null) {
                    return subsIdBuilder_.getMessageOrBuilder();
                } else {
                    return subsId_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : subsId_;
                }
            }

            /**
             * <code>.context.Uuid subs_id = 1;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> getSubsIdFieldBuilder() {
                if (subsIdBuilder_ == null) {
                    subsIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder>(getSubsId(), getParentForChildren(), isClean());
                    subsId_ = null;
                }
                return subsIdBuilder_;
            }

            @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:monitoring.SubscriptionID)
        }

        // @@protoc_insertion_point(class_scope:monitoring.SubscriptionID)
        private static final monitoring.Monitoring.SubscriptionID DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new monitoring.Monitoring.SubscriptionID();
        }

        public static monitoring.Monitoring.SubscriptionID getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

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

            @java.lang.Override
            public SubscriptionID 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<SubscriptionID> parser() {
            return PARSER;
        }

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

        @java.lang.Override
        public monitoring.Monitoring.SubscriptionID getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    }

    public interface SubsResponseOrBuilder extends // @@protoc_insertion_point(interface_extends:monitoring.SubsResponse)
    com.google.protobuf.MessageOrBuilder {

        /**
         * <code>.monitoring.SubscriptionID subs_id = 1;</code>
         * @return Whether the subsId field is set.
         */
        boolean hasSubsId();

        /**
         * <code>.monitoring.SubscriptionID subs_id = 1;</code>
         * @return The subsId.
         */
        monitoring.Monitoring.SubscriptionID getSubsId();

        /**
         * <code>.monitoring.SubscriptionID subs_id = 1;</code>
         */
        monitoring.Monitoring.SubscriptionIDOrBuilder getSubsIdOrBuilder();

        /**
         * <code>.monitoring.KpiList kpi_list = 2;</code>
         * @return Whether the kpiList field is set.
         */
        boolean hasKpiList();

        /**
         * <code>.monitoring.KpiList kpi_list = 2;</code>
         * @return The kpiList.
         */
        monitoring.Monitoring.KpiList getKpiList();

        /**
         * <code>.monitoring.KpiList kpi_list = 2;</code>
         */
        monitoring.Monitoring.KpiListOrBuilder getKpiListOrBuilder();
    }

    /**
     * Protobuf type {@code monitoring.SubsResponse}
     */
    public static final class SubsResponse extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:monitoring.SubsResponse)
    SubsResponseOrBuilder {

        private static final long serialVersionUID = 0L;

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

        private SubsResponse() {
        }

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

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return monitoring.Monitoring.internal_static_monitoring_SubsResponse_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            return monitoring.Monitoring.internal_static_monitoring_SubsResponse_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.SubsResponse.class, monitoring.Monitoring.SubsResponse.Builder.class);
        }

        public static final int SUBS_ID_FIELD_NUMBER = 1;

        private monitoring.Monitoring.SubscriptionID subsId_;

        /**
         * <code>.monitoring.SubscriptionID subs_id = 1;</code>
         * @return Whether the subsId field is set.
         */
        @java.lang.Override
        public boolean hasSubsId() {
            return subsId_ != null;
        }

        /**
         * <code>.monitoring.SubscriptionID subs_id = 1;</code>
         * @return The subsId.
         */
        @java.lang.Override
        public monitoring.Monitoring.SubscriptionID getSubsId() {
            return subsId_ == null ? monitoring.Monitoring.SubscriptionID.getDefaultInstance() : subsId_;
        }

        /**
         * <code>.monitoring.SubscriptionID subs_id = 1;</code>
         */
        @java.lang.Override
        public monitoring.Monitoring.SubscriptionIDOrBuilder getSubsIdOrBuilder() {
            return subsId_ == null ? monitoring.Monitoring.SubscriptionID.getDefaultInstance() : subsId_;
        }

        public static final int KPI_LIST_FIELD_NUMBER = 2;

        private monitoring.Monitoring.KpiList kpiList_;

        /**
         * <code>.monitoring.KpiList kpi_list = 2;</code>
         * @return Whether the kpiList field is set.
         */
        @java.lang.Override
        public boolean hasKpiList() {
            return kpiList_ != null;
        }

        /**
         * <code>.monitoring.KpiList kpi_list = 2;</code>
         * @return The kpiList.
         */
        @java.lang.Override
        public monitoring.Monitoring.KpiList getKpiList() {
            return kpiList_ == null ? monitoring.Monitoring.KpiList.getDefaultInstance() : kpiList_;
        }

        /**
         * <code>.monitoring.KpiList kpi_list = 2;</code>
         */
        @java.lang.Override
        public monitoring.Monitoring.KpiListOrBuilder getKpiListOrBuilder() {
            return kpiList_ == null ? monitoring.Monitoring.KpiList.getDefaultInstance() : kpiList_;
        }

        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 (subsId_ != null) {
                output.writeMessage(1, getSubsId());
            }
            if (kpiList_ != null) {
                output.writeMessage(2, getKpiList());
            }
            getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;
            size = 0;
            if (subsId_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getSubsId());
            }
            if (kpiList_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getKpiList());
            }
            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 monitoring.Monitoring.SubsResponse)) {
                return super.equals(obj);
            }
            monitoring.Monitoring.SubsResponse other = (monitoring.Monitoring.SubsResponse) obj;
            if (hasSubsId() != other.hasSubsId())
                return false;
            if (hasSubsId()) {
                if (!getSubsId().equals(other.getSubsId()))
                    return false;
            }
            if (hasKpiList() != other.hasKpiList())
                return false;
            if (hasKpiList()) {
                if (!getKpiList().equals(other.getKpiList()))
                    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();
            if (hasSubsId()) {
                hash = (37 * hash) + SUBS_ID_FIELD_NUMBER;
                hash = (53 * hash) + getSubsId().hashCode();
            }
            if (hasKpiList()) {
                hash = (37 * hash) + KPI_LIST_FIELD_NUMBER;
                hash = (53 * hash) + getKpiList().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static monitoring.Monitoring.SubsResponse parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.SubsResponse parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.SubsResponse parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.SubsResponse parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.SubsResponse parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.SubsResponse parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.SubsResponse parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.SubsResponse 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 monitoring.Monitoring.SubsResponse parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.SubsResponse 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 monitoring.Monitoring.SubsResponse parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.SubsResponse 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(monitoring.Monitoring.SubsResponse 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;
        }

        /**
         * Protobuf type {@code monitoring.SubsResponse}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:monitoring.SubsResponse)
        monitoring.Monitoring.SubsResponseOrBuilder {

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return monitoring.Monitoring.internal_static_monitoring_SubsResponse_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
                return monitoring.Monitoring.internal_static_monitoring_SubsResponse_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.SubsResponse.class, monitoring.Monitoring.SubsResponse.Builder.class);
            }

            // Construct using monitoring.Monitoring.SubsResponse.newBuilder()
            private Builder() {
            }

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

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                subsId_ = null;
                if (subsIdBuilder_ != null) {
                    subsIdBuilder_.dispose();
                    subsIdBuilder_ = null;
                }
                kpiList_ = null;
                if (kpiListBuilder_ != null) {
                    kpiListBuilder_.dispose();
                    kpiListBuilder_ = null;
                }
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return monitoring.Monitoring.internal_static_monitoring_SubsResponse_descriptor;
            }

            @java.lang.Override
            public monitoring.Monitoring.SubsResponse getDefaultInstanceForType() {
                return monitoring.Monitoring.SubsResponse.getDefaultInstance();
            }

            @java.lang.Override
            public monitoring.Monitoring.SubsResponse build() {
                monitoring.Monitoring.SubsResponse result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public monitoring.Monitoring.SubsResponse buildPartial() {
                monitoring.Monitoring.SubsResponse result = new monitoring.Monitoring.SubsResponse(this);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                }
                onBuilt();
                return result;
            }

            private void buildPartial0(monitoring.Monitoring.SubsResponse result) {
                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    result.subsId_ = subsIdBuilder_ == null ? subsId_ : subsIdBuilder_.build();
                }
                if (((from_bitField0_ & 0x00000002) != 0)) {
                    result.kpiList_ = kpiListBuilder_ == null ? kpiList_ : kpiListBuilder_.build();
                }
            }

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

            public Builder mergeFrom(monitoring.Monitoring.SubsResponse other) {
                if (other == monitoring.Monitoring.SubsResponse.getDefaultInstance())
                    return this;
                if (other.hasSubsId()) {
                    mergeSubsId(other.getSubsId());
                }
                if (other.hasKpiList()) {
                    mergeKpiList(other.getKpiList());
                }
                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:
                                {
                                    input.readMessage(getSubsIdFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000001;
                                    break;
                                }
                            // case 10
                            case 18:
                                {
                                    input.readMessage(getKpiListFieldBuilder().getBuilder(), extensionRegistry);
                                    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 monitoring.Monitoring.SubscriptionID subsId_;

            private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.SubscriptionID, monitoring.Monitoring.SubscriptionID.Builder, monitoring.Monitoring.SubscriptionIDOrBuilder> subsIdBuilder_;

            /**
             * <code>.monitoring.SubscriptionID subs_id = 1;</code>
             * @return Whether the subsId field is set.
             */
            public boolean hasSubsId() {
                return ((bitField0_ & 0x00000001) != 0);
            }

            /**
             * <code>.monitoring.SubscriptionID subs_id = 1;</code>
             * @return The subsId.
             */
            public monitoring.Monitoring.SubscriptionID getSubsId() {
                if (subsIdBuilder_ == null) {
                    return subsId_ == null ? monitoring.Monitoring.SubscriptionID.getDefaultInstance() : subsId_;
                } else {
                    return subsIdBuilder_.getMessage();
                }
            }

            /**
             * <code>.monitoring.SubscriptionID subs_id = 1;</code>
             */
            public Builder setSubsId(monitoring.Monitoring.SubscriptionID value) {
                if (subsIdBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    subsId_ = value;
                } else {
                    subsIdBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.SubscriptionID subs_id = 1;</code>
             */
            public Builder setSubsId(monitoring.Monitoring.SubscriptionID.Builder builderForValue) {
                if (subsIdBuilder_ == null) {
                    subsId_ = builderForValue.build();
                } else {
                    subsIdBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.SubscriptionID subs_id = 1;</code>
             */
            public Builder mergeSubsId(monitoring.Monitoring.SubscriptionID value) {
                if (subsIdBuilder_ == null) {
                    if (((bitField0_ & 0x00000001) != 0) && subsId_ != null && subsId_ != monitoring.Monitoring.SubscriptionID.getDefaultInstance()) {
                        getSubsIdBuilder().mergeFrom(value);
                    } else {
                        subsId_ = value;
                    }
                } else {
                    subsIdBuilder_.mergeFrom(value);
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.SubscriptionID subs_id = 1;</code>
             */
            public Builder clearSubsId() {
                bitField0_ = (bitField0_ & ~0x00000001);
                subsId_ = null;
                if (subsIdBuilder_ != null) {
                    subsIdBuilder_.dispose();
                    subsIdBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.SubscriptionID subs_id = 1;</code>
             */
            public monitoring.Monitoring.SubscriptionID.Builder getSubsIdBuilder() {
                bitField0_ |= 0x00000001;
                onChanged();
                return getSubsIdFieldBuilder().getBuilder();
            }

            /**
             * <code>.monitoring.SubscriptionID subs_id = 1;</code>
             */
            public monitoring.Monitoring.SubscriptionIDOrBuilder getSubsIdOrBuilder() {
                if (subsIdBuilder_ != null) {
                    return subsIdBuilder_.getMessageOrBuilder();
                } else {
                    return subsId_ == null ? monitoring.Monitoring.SubscriptionID.getDefaultInstance() : subsId_;
                }
            }

            /**
             * <code>.monitoring.SubscriptionID subs_id = 1;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.SubscriptionID, monitoring.Monitoring.SubscriptionID.Builder, monitoring.Monitoring.SubscriptionIDOrBuilder> getSubsIdFieldBuilder() {
                if (subsIdBuilder_ == null) {
                    subsIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.SubscriptionID, monitoring.Monitoring.SubscriptionID.Builder, monitoring.Monitoring.SubscriptionIDOrBuilder>(getSubsId(), getParentForChildren(), isClean());
                    subsId_ = null;
                }
                return subsIdBuilder_;
            }

            private monitoring.Monitoring.KpiList kpiList_;

            private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiList, monitoring.Monitoring.KpiList.Builder, monitoring.Monitoring.KpiListOrBuilder> kpiListBuilder_;

            /**
             * <code>.monitoring.KpiList kpi_list = 2;</code>
             * @return Whether the kpiList field is set.
             */
            public boolean hasKpiList() {
                return ((bitField0_ & 0x00000002) != 0);
            }

            /**
             * <code>.monitoring.KpiList kpi_list = 2;</code>
             * @return The kpiList.
             */
            public monitoring.Monitoring.KpiList getKpiList() {
                if (kpiListBuilder_ == null) {
                    return kpiList_ == null ? monitoring.Monitoring.KpiList.getDefaultInstance() : kpiList_;
                } else {
                    return kpiListBuilder_.getMessage();
                }
            }

            /**
             * <code>.monitoring.KpiList kpi_list = 2;</code>
             */
            public Builder setKpiList(monitoring.Monitoring.KpiList value) {
                if (kpiListBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    kpiList_ = value;
                } else {
                    kpiListBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiList kpi_list = 2;</code>
             */
            public Builder setKpiList(monitoring.Monitoring.KpiList.Builder builderForValue) {
                if (kpiListBuilder_ == null) {
                    kpiList_ = builderForValue.build();
                } else {
                    kpiListBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiList kpi_list = 2;</code>
             */
            public Builder mergeKpiList(monitoring.Monitoring.KpiList value) {
                if (kpiListBuilder_ == null) {
                    if (((bitField0_ & 0x00000002) != 0) && kpiList_ != null && kpiList_ != monitoring.Monitoring.KpiList.getDefaultInstance()) {
                        getKpiListBuilder().mergeFrom(value);
                    } else {
                        kpiList_ = value;
                    }
                } else {
                    kpiListBuilder_.mergeFrom(value);
                }
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiList kpi_list = 2;</code>
             */
            public Builder clearKpiList() {
                bitField0_ = (bitField0_ & ~0x00000002);
                kpiList_ = null;
                if (kpiListBuilder_ != null) {
                    kpiListBuilder_.dispose();
                    kpiListBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiList kpi_list = 2;</code>
             */
            public monitoring.Monitoring.KpiList.Builder getKpiListBuilder() {
                bitField0_ |= 0x00000002;
                onChanged();
                return getKpiListFieldBuilder().getBuilder();
            }

            /**
             * <code>.monitoring.KpiList kpi_list = 2;</code>
             */
            public monitoring.Monitoring.KpiListOrBuilder getKpiListOrBuilder() {
                if (kpiListBuilder_ != null) {
                    return kpiListBuilder_.getMessageOrBuilder();
                } else {
                    return kpiList_ == null ? monitoring.Monitoring.KpiList.getDefaultInstance() : kpiList_;
                }
            }

            /**
             * <code>.monitoring.KpiList kpi_list = 2;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiList, monitoring.Monitoring.KpiList.Builder, monitoring.Monitoring.KpiListOrBuilder> getKpiListFieldBuilder() {
                if (kpiListBuilder_ == null) {
                    kpiListBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiList, monitoring.Monitoring.KpiList.Builder, monitoring.Monitoring.KpiListOrBuilder>(getKpiList(), getParentForChildren(), isClean());
                    kpiList_ = null;
                }
                return kpiListBuilder_;
            }

            @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:monitoring.SubsResponse)
        }

        // @@protoc_insertion_point(class_scope:monitoring.SubsResponse)
        private static final monitoring.Monitoring.SubsResponse DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new monitoring.Monitoring.SubsResponse();
        }

        public static monitoring.Monitoring.SubsResponse getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

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

            @java.lang.Override
            public SubsResponse 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<SubsResponse> parser() {
            return PARSER;
        }

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

        @java.lang.Override
        public monitoring.Monitoring.SubsResponse getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    }

    public interface SubsListOrBuilder extends // @@protoc_insertion_point(interface_extends:monitoring.SubsList)
    com.google.protobuf.MessageOrBuilder {

        /**
         * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code>
         */
        java.util.List<monitoring.Monitoring.SubsDescriptor> getSubsDescriptorList();

        /**
         * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code>
         */
        monitoring.Monitoring.SubsDescriptor getSubsDescriptor(int index);

        /**
         * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code>
         */
        int getSubsDescriptorCount();

        /**
         * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code>
         */
        java.util.List<? extends monitoring.Monitoring.SubsDescriptorOrBuilder> getSubsDescriptorOrBuilderList();

        /**
         * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code>
         */
        monitoring.Monitoring.SubsDescriptorOrBuilder getSubsDescriptorOrBuilder(int index);
    }

    /**
     * Protobuf type {@code monitoring.SubsList}
     */
    public static final class SubsList extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:monitoring.SubsList)
    SubsListOrBuilder {

        private static final long serialVersionUID = 0L;

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

        private SubsList() {
            subsDescriptor_ = java.util.Collections.emptyList();
        }

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

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return monitoring.Monitoring.internal_static_monitoring_SubsList_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            return monitoring.Monitoring.internal_static_monitoring_SubsList_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.SubsList.class, monitoring.Monitoring.SubsList.Builder.class);
        }

        public static final int SUBS_DESCRIPTOR_FIELD_NUMBER = 1;

        @SuppressWarnings("serial")
        private java.util.List<monitoring.Monitoring.SubsDescriptor> subsDescriptor_;

        /**
         * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code>
         */
        @java.lang.Override
        public java.util.List<monitoring.Monitoring.SubsDescriptor> getSubsDescriptorList() {
            return subsDescriptor_;
        }

        /**
         * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code>
         */
        @java.lang.Override
        public java.util.List<? extends monitoring.Monitoring.SubsDescriptorOrBuilder> getSubsDescriptorOrBuilderList() {
            return subsDescriptor_;
        }

        /**
         * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code>
         */
        @java.lang.Override
        public int getSubsDescriptorCount() {
            return subsDescriptor_.size();
        }

        /**
         * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code>
         */
        @java.lang.Override
        public monitoring.Monitoring.SubsDescriptor getSubsDescriptor(int index) {
            return subsDescriptor_.get(index);
        }

        /**
         * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code>
         */
        @java.lang.Override
        public monitoring.Monitoring.SubsDescriptorOrBuilder getSubsDescriptorOrBuilder(int index) {
            return subsDescriptor_.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 {
            for (int i = 0; i < subsDescriptor_.size(); i++) {
                output.writeMessage(1, subsDescriptor_.get(i));
            }
            getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;
            size = 0;
            for (int i = 0; i < subsDescriptor_.size(); i++) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, subsDescriptor_.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 monitoring.Monitoring.SubsList)) {
                return super.equals(obj);
            }
            monitoring.Monitoring.SubsList other = (monitoring.Monitoring.SubsList) obj;
            if (!getSubsDescriptorList().equals(other.getSubsDescriptorList()))
                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();
            if (getSubsDescriptorCount() > 0) {
                hash = (37 * hash) + SUBS_DESCRIPTOR_FIELD_NUMBER;
                hash = (53 * hash) + getSubsDescriptorList().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static monitoring.Monitoring.SubsList parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.SubsList parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.SubsList parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.SubsList parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.SubsList parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.SubsList parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.SubsList parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.SubsList 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 monitoring.Monitoring.SubsList parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.SubsList 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 monitoring.Monitoring.SubsList parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.SubsList 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(monitoring.Monitoring.SubsList 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;
        }

        /**
         * Protobuf type {@code monitoring.SubsList}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:monitoring.SubsList)
        monitoring.Monitoring.SubsListOrBuilder {

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return monitoring.Monitoring.internal_static_monitoring_SubsList_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
                return monitoring.Monitoring.internal_static_monitoring_SubsList_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.SubsList.class, monitoring.Monitoring.SubsList.Builder.class);
            }

            // Construct using monitoring.Monitoring.SubsList.newBuilder()
            private Builder() {
            }

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

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                if (subsDescriptorBuilder_ == null) {
                    subsDescriptor_ = java.util.Collections.emptyList();
                } else {
                    subsDescriptor_ = null;
                    subsDescriptorBuilder_.clear();
                }
                bitField0_ = (bitField0_ & ~0x00000001);
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return monitoring.Monitoring.internal_static_monitoring_SubsList_descriptor;
            }

            @java.lang.Override
            public monitoring.Monitoring.SubsList getDefaultInstanceForType() {
                return monitoring.Monitoring.SubsList.getDefaultInstance();
            }

            @java.lang.Override
            public monitoring.Monitoring.SubsList build() {
                monitoring.Monitoring.SubsList result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

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

            private void buildPartialRepeatedFields(monitoring.Monitoring.SubsList result) {
                if (subsDescriptorBuilder_ == null) {
                    if (((bitField0_ & 0x00000001) != 0)) {
                        subsDescriptor_ = java.util.Collections.unmodifiableList(subsDescriptor_);
                        bitField0_ = (bitField0_ & ~0x00000001);
                    }
                    result.subsDescriptor_ = subsDescriptor_;
                } else {
                    result.subsDescriptor_ = subsDescriptorBuilder_.build();
                }
            }

            private void buildPartial0(monitoring.Monitoring.SubsList result) {
                int from_bitField0_ = bitField0_;
            }

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

            public Builder mergeFrom(monitoring.Monitoring.SubsList other) {
                if (other == monitoring.Monitoring.SubsList.getDefaultInstance())
                    return this;
                if (subsDescriptorBuilder_ == null) {
                    if (!other.subsDescriptor_.isEmpty()) {
                        if (subsDescriptor_.isEmpty()) {
                            subsDescriptor_ = other.subsDescriptor_;
                            bitField0_ = (bitField0_ & ~0x00000001);
                        } else {
                            ensureSubsDescriptorIsMutable();
                            subsDescriptor_.addAll(other.subsDescriptor_);
                        }
                        onChanged();
                    }
                } else {
                    if (!other.subsDescriptor_.isEmpty()) {
                        if (subsDescriptorBuilder_.isEmpty()) {
                            subsDescriptorBuilder_.dispose();
                            subsDescriptorBuilder_ = null;
                            subsDescriptor_ = other.subsDescriptor_;
                            bitField0_ = (bitField0_ & ~0x00000001);
                            subsDescriptorBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getSubsDescriptorFieldBuilder() : null;
                        } else {
                            subsDescriptorBuilder_.addAllMessages(other.subsDescriptor_);
                        }
                    }
                }
                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:
                                {
                                    monitoring.Monitoring.SubsDescriptor m = input.readMessage(monitoring.Monitoring.SubsDescriptor.parser(), extensionRegistry);
                                    if (subsDescriptorBuilder_ == null) {
                                        ensureSubsDescriptorIsMutable();
                                        subsDescriptor_.add(m);
                                    } else {
                                        subsDescriptorBuilder_.addMessage(m);
                                    }
                                    break;
                                }
                            // case 10
                            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.util.List<monitoring.Monitoring.SubsDescriptor> subsDescriptor_ = java.util.Collections.emptyList();

            private void ensureSubsDescriptorIsMutable() {
                if (!((bitField0_ & 0x00000001) != 0)) {
                    subsDescriptor_ = new java.util.ArrayList<monitoring.Monitoring.SubsDescriptor>(subsDescriptor_);
                    bitField0_ |= 0x00000001;
                }
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<monitoring.Monitoring.SubsDescriptor, monitoring.Monitoring.SubsDescriptor.Builder, monitoring.Monitoring.SubsDescriptorOrBuilder> subsDescriptorBuilder_;

            /**
             * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code>
             */
            public java.util.List<monitoring.Monitoring.SubsDescriptor> getSubsDescriptorList() {
                if (subsDescriptorBuilder_ == null) {
                    return java.util.Collections.unmodifiableList(subsDescriptor_);
                } else {
                    return subsDescriptorBuilder_.getMessageList();
                }
            }

            /**
             * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code>
             */
            public int getSubsDescriptorCount() {
                if (subsDescriptorBuilder_ == null) {
                    return subsDescriptor_.size();
                } else {
                    return subsDescriptorBuilder_.getCount();
                }
            }

            /**
             * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code>
             */
            public monitoring.Monitoring.SubsDescriptor getSubsDescriptor(int index) {
                if (subsDescriptorBuilder_ == null) {
                    return subsDescriptor_.get(index);
                } else {
                    return subsDescriptorBuilder_.getMessage(index);
                }
            }

            /**
             * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code>
             */
            public Builder setSubsDescriptor(int index, monitoring.Monitoring.SubsDescriptor value) {
                if (subsDescriptorBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureSubsDescriptorIsMutable();
                    subsDescriptor_.set(index, value);
                    onChanged();
                } else {
                    subsDescriptorBuilder_.setMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code>
             */
            public Builder setSubsDescriptor(int index, monitoring.Monitoring.SubsDescriptor.Builder builderForValue) {
                if (subsDescriptorBuilder_ == null) {
                    ensureSubsDescriptorIsMutable();
                    subsDescriptor_.set(index, builderForValue.build());
                    onChanged();
                } else {
                    subsDescriptorBuilder_.setMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code>
             */
            public Builder addSubsDescriptor(monitoring.Monitoring.SubsDescriptor value) {
                if (subsDescriptorBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureSubsDescriptorIsMutable();
                    subsDescriptor_.add(value);
                    onChanged();
                } else {
                    subsDescriptorBuilder_.addMessage(value);
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code>
             */
            public Builder addSubsDescriptor(int index, monitoring.Monitoring.SubsDescriptor value) {
                if (subsDescriptorBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureSubsDescriptorIsMutable();
                    subsDescriptor_.add(index, value);
                    onChanged();
                } else {
                    subsDescriptorBuilder_.addMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code>
             */
            public Builder addSubsDescriptor(monitoring.Monitoring.SubsDescriptor.Builder builderForValue) {
                if (subsDescriptorBuilder_ == null) {
                    ensureSubsDescriptorIsMutable();
                    subsDescriptor_.add(builderForValue.build());
                    onChanged();
                } else {
                    subsDescriptorBuilder_.addMessage(builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code>
             */
            public Builder addSubsDescriptor(int index, monitoring.Monitoring.SubsDescriptor.Builder builderForValue) {
                if (subsDescriptorBuilder_ == null) {
                    ensureSubsDescriptorIsMutable();
                    subsDescriptor_.add(index, builderForValue.build());
                    onChanged();
                } else {
                    subsDescriptorBuilder_.addMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code>
             */
            public Builder addAllSubsDescriptor(java.lang.Iterable<? extends monitoring.Monitoring.SubsDescriptor> values) {
                if (subsDescriptorBuilder_ == null) {
                    ensureSubsDescriptorIsMutable();
                    com.google.protobuf.AbstractMessageLite.Builder.addAll(values, subsDescriptor_);
                    onChanged();
                } else {
                    subsDescriptorBuilder_.addAllMessages(values);
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code>
             */
            public Builder clearSubsDescriptor() {
                if (subsDescriptorBuilder_ == null) {
                    subsDescriptor_ = java.util.Collections.emptyList();
                    bitField0_ = (bitField0_ & ~0x00000001);
                    onChanged();
                } else {
                    subsDescriptorBuilder_.clear();
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code>
             */
            public Builder removeSubsDescriptor(int index) {
                if (subsDescriptorBuilder_ == null) {
                    ensureSubsDescriptorIsMutable();
                    subsDescriptor_.remove(index);
                    onChanged();
                } else {
                    subsDescriptorBuilder_.remove(index);
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code>
             */
            public monitoring.Monitoring.SubsDescriptor.Builder getSubsDescriptorBuilder(int index) {
                return getSubsDescriptorFieldBuilder().getBuilder(index);
            }

            /**
             * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code>
             */
            public monitoring.Monitoring.SubsDescriptorOrBuilder getSubsDescriptorOrBuilder(int index) {
                if (subsDescriptorBuilder_ == null) {
                    return subsDescriptor_.get(index);
                } else {
                    return subsDescriptorBuilder_.getMessageOrBuilder(index);
                }
            }

            /**
             * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code>
             */
            public java.util.List<? extends monitoring.Monitoring.SubsDescriptorOrBuilder> getSubsDescriptorOrBuilderList() {
                if (subsDescriptorBuilder_ != null) {
                    return subsDescriptorBuilder_.getMessageOrBuilderList();
                } else {
                    return java.util.Collections.unmodifiableList(subsDescriptor_);
                }
            }

            /**
             * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code>
             */
            public monitoring.Monitoring.SubsDescriptor.Builder addSubsDescriptorBuilder() {
                return getSubsDescriptorFieldBuilder().addBuilder(monitoring.Monitoring.SubsDescriptor.getDefaultInstance());
            }

            /**
             * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code>
             */
            public monitoring.Monitoring.SubsDescriptor.Builder addSubsDescriptorBuilder(int index) {
                return getSubsDescriptorFieldBuilder().addBuilder(index, monitoring.Monitoring.SubsDescriptor.getDefaultInstance());
            }

            /**
             * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code>
             */
            public java.util.List<monitoring.Monitoring.SubsDescriptor.Builder> getSubsDescriptorBuilderList() {
                return getSubsDescriptorFieldBuilder().getBuilderList();
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<monitoring.Monitoring.SubsDescriptor, monitoring.Monitoring.SubsDescriptor.Builder, monitoring.Monitoring.SubsDescriptorOrBuilder> getSubsDescriptorFieldBuilder() {
                if (subsDescriptorBuilder_ == null) {
                    subsDescriptorBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<monitoring.Monitoring.SubsDescriptor, monitoring.Monitoring.SubsDescriptor.Builder, monitoring.Monitoring.SubsDescriptorOrBuilder>(subsDescriptor_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean());
                    subsDescriptor_ = null;
                }
                return subsDescriptorBuilder_;
            }

            @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:monitoring.SubsList)
        }

        // @@protoc_insertion_point(class_scope:monitoring.SubsList)
        private static final monitoring.Monitoring.SubsList DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new monitoring.Monitoring.SubsList();
        }

        public static monitoring.Monitoring.SubsList getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

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

            @java.lang.Override
            public SubsList 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<SubsList> parser() {
            return PARSER;
        }

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

        @java.lang.Override
        public monitoring.Monitoring.SubsList getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    }

    public interface AlarmDescriptorOrBuilder extends // @@protoc_insertion_point(interface_extends:monitoring.AlarmDescriptor)
    com.google.protobuf.MessageOrBuilder {

        /**
         * <code>.monitoring.AlarmID alarm_id = 1;</code>
         * @return Whether the alarmId field is set.
         */
        boolean hasAlarmId();

        /**
         * <code>.monitoring.AlarmID alarm_id = 1;</code>
         * @return The alarmId.
         */
        monitoring.Monitoring.AlarmID getAlarmId();

        /**
         * <code>.monitoring.AlarmID alarm_id = 1;</code>
         */
        monitoring.Monitoring.AlarmIDOrBuilder getAlarmIdOrBuilder();

        /**
         * <code>string alarm_description = 2;</code>
         * @return The alarmDescription.
         */
        java.lang.String getAlarmDescription();

        /**
         * <code>string alarm_description = 2;</code>
         * @return The bytes for alarmDescription.
         */
        com.google.protobuf.ByteString getAlarmDescriptionBytes();

        /**
         * <code>string name = 3;</code>
         * @return The name.
         */
        java.lang.String getName();

        /**
         * <code>string name = 3;</code>
         * @return The bytes for name.
         */
        com.google.protobuf.ByteString getNameBytes();

        /**
         * <code>.monitoring.KpiId kpi_id = 4;</code>
         * @return Whether the kpiId field is set.
         */
        boolean hasKpiId();

        /**
         * <code>.monitoring.KpiId kpi_id = 4;</code>
         * @return The kpiId.
         */
        monitoring.Monitoring.KpiId getKpiId();

        /**
         * <code>.monitoring.KpiId kpi_id = 4;</code>
         */
        monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder();

        /**
         * <code>.monitoring.KpiValueRange kpi_value_range = 5;</code>
         * @return Whether the kpiValueRange field is set.
         */
        boolean hasKpiValueRange();

        /**
         * <code>.monitoring.KpiValueRange kpi_value_range = 5;</code>
         * @return The kpiValueRange.
         */
        monitoring.Monitoring.KpiValueRange getKpiValueRange();

        /**
         * <code>.monitoring.KpiValueRange kpi_value_range = 5;</code>
         */
        monitoring.Monitoring.KpiValueRangeOrBuilder getKpiValueRangeOrBuilder();

        /**
         * <code>.context.Timestamp timestamp = 6;</code>
         * @return Whether the timestamp field is set.
         */
        boolean hasTimestamp();

        /**
         * <code>.context.Timestamp timestamp = 6;</code>
         * @return The timestamp.
         */
        context.ContextOuterClass.Timestamp getTimestamp();

        /**
         * <code>.context.Timestamp timestamp = 6;</code>
         */
        context.ContextOuterClass.TimestampOrBuilder getTimestampOrBuilder();
    }

    /**
     * Protobuf type {@code monitoring.AlarmDescriptor}
     */
    public static final class AlarmDescriptor extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:monitoring.AlarmDescriptor)
    AlarmDescriptorOrBuilder {

        private static final long serialVersionUID = 0L;

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

        private AlarmDescriptor() {
            alarmDescription_ = "";
            name_ = "";
        }

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

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return monitoring.Monitoring.internal_static_monitoring_AlarmDescriptor_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            return monitoring.Monitoring.internal_static_monitoring_AlarmDescriptor_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.AlarmDescriptor.class, monitoring.Monitoring.AlarmDescriptor.Builder.class);
        }

        public static final int ALARM_ID_FIELD_NUMBER = 1;

        private monitoring.Monitoring.AlarmID alarmId_;

        /**
         * <code>.monitoring.AlarmID alarm_id = 1;</code>
         * @return Whether the alarmId field is set.
         */
        @java.lang.Override
        public boolean hasAlarmId() {
            return alarmId_ != null;
        }

        /**
         * <code>.monitoring.AlarmID alarm_id = 1;</code>
         * @return The alarmId.
         */
        @java.lang.Override
        public monitoring.Monitoring.AlarmID getAlarmId() {
            return alarmId_ == null ? monitoring.Monitoring.AlarmID.getDefaultInstance() : alarmId_;
        }

        /**
         * <code>.monitoring.AlarmID alarm_id = 1;</code>
         */
        @java.lang.Override
        public monitoring.Monitoring.AlarmIDOrBuilder getAlarmIdOrBuilder() {
            return alarmId_ == null ? monitoring.Monitoring.AlarmID.getDefaultInstance() : alarmId_;
        }

        public static final int ALARM_DESCRIPTION_FIELD_NUMBER = 2;

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

        /**
         * <code>string alarm_description = 2;</code>
         * @return The alarmDescription.
         */
        @java.lang.Override
        public java.lang.String getAlarmDescription() {
            java.lang.Object ref = alarmDescription_;
            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();
                alarmDescription_ = s;
                return s;
            }
        }

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

        public static final int NAME_FIELD_NUMBER = 3;

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

        /**
         * <code>string name = 3;</code>
         * @return The name.
         */
        @java.lang.Override
        public java.lang.String getName() {
            java.lang.Object ref = name_;
            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();
                name_ = s;
                return s;
            }
        }

        /**
         * <code>string name = 3;</code>
         * @return The bytes for name.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString getNameBytes() {
            java.lang.Object ref = name_;
            if (ref instanceof java.lang.String) {
                com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
                name_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }

        public static final int KPI_ID_FIELD_NUMBER = 4;

        private monitoring.Monitoring.KpiId kpiId_;

        /**
         * <code>.monitoring.KpiId kpi_id = 4;</code>
         * @return Whether the kpiId field is set.
         */
        @java.lang.Override
        public boolean hasKpiId() {
            return kpiId_ != null;
        }

        /**
         * <code>.monitoring.KpiId kpi_id = 4;</code>
         * @return The kpiId.
         */
        @java.lang.Override
        public monitoring.Monitoring.KpiId getKpiId() {
            return kpiId_ == null ? monitoring.Monitoring.KpiId.getDefaultInstance() : kpiId_;
        }

        /**
         * <code>.monitoring.KpiId kpi_id = 4;</code>
         */
        @java.lang.Override
        public monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder() {
            return kpiId_ == null ? monitoring.Monitoring.KpiId.getDefaultInstance() : kpiId_;
        }

        public static final int KPI_VALUE_RANGE_FIELD_NUMBER = 5;

        private monitoring.Monitoring.KpiValueRange kpiValueRange_;

        /**
         * <code>.monitoring.KpiValueRange kpi_value_range = 5;</code>
         * @return Whether the kpiValueRange field is set.
         */
        @java.lang.Override
        public boolean hasKpiValueRange() {
            return kpiValueRange_ != null;
        }

        /**
         * <code>.monitoring.KpiValueRange kpi_value_range = 5;</code>
         * @return The kpiValueRange.
         */
        @java.lang.Override
        public monitoring.Monitoring.KpiValueRange getKpiValueRange() {
            return kpiValueRange_ == null ? monitoring.Monitoring.KpiValueRange.getDefaultInstance() : kpiValueRange_;
        }

        /**
         * <code>.monitoring.KpiValueRange kpi_value_range = 5;</code>
         */
        @java.lang.Override
        public monitoring.Monitoring.KpiValueRangeOrBuilder getKpiValueRangeOrBuilder() {
            return kpiValueRange_ == null ? monitoring.Monitoring.KpiValueRange.getDefaultInstance() : kpiValueRange_;
        }

        public static final int TIMESTAMP_FIELD_NUMBER = 6;

        private context.ContextOuterClass.Timestamp timestamp_;

        /**
         * <code>.context.Timestamp timestamp = 6;</code>
         * @return Whether the timestamp field is set.
         */
        @java.lang.Override
        public boolean hasTimestamp() {
            return timestamp_ != null;
        }

        /**
         * <code>.context.Timestamp timestamp = 6;</code>
         * @return The timestamp.
         */
        @java.lang.Override
        public context.ContextOuterClass.Timestamp getTimestamp() {
            return timestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : timestamp_;
        }

        /**
         * <code>.context.Timestamp timestamp = 6;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.TimestampOrBuilder getTimestampOrBuilder() {
            return timestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : timestamp_;
        }

        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 (alarmId_ != null) {
                output.writeMessage(1, getAlarmId());
            }
            if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(alarmDescription_)) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 2, alarmDescription_);
            }
            if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 3, name_);
            }
            if (kpiId_ != null) {
                output.writeMessage(4, getKpiId());
            }
            if (kpiValueRange_ != null) {
                output.writeMessage(5, getKpiValueRange());
            }
            if (timestamp_ != null) {
                output.writeMessage(6, getTimestamp());
            }
            getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;
            size = 0;
            if (alarmId_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getAlarmId());
            }
            if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(alarmDescription_)) {
                size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, alarmDescription_);
            }
            if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
                size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, name_);
            }
            if (kpiId_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getKpiId());
            }
            if (kpiValueRange_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getKpiValueRange());
            }
            if (timestamp_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, getTimestamp());
            }
            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 monitoring.Monitoring.AlarmDescriptor)) {
                return super.equals(obj);
            }
            monitoring.Monitoring.AlarmDescriptor other = (monitoring.Monitoring.AlarmDescriptor) obj;
            if (hasAlarmId() != other.hasAlarmId())
                return false;
            if (hasAlarmId()) {
                if (!getAlarmId().equals(other.getAlarmId()))
                    return false;
            }
            if (!getAlarmDescription().equals(other.getAlarmDescription()))
                return false;
            if (!getName().equals(other.getName()))
                return false;
            if (hasKpiId() != other.hasKpiId())
                return false;
            if (hasKpiId()) {
                if (!getKpiId().equals(other.getKpiId()))
                    return false;
            }
            if (hasKpiValueRange() != other.hasKpiValueRange())
                return false;
            if (hasKpiValueRange()) {
                if (!getKpiValueRange().equals(other.getKpiValueRange()))
                    return false;
            }
            if (hasTimestamp() != other.hasTimestamp())
                return false;
            if (hasTimestamp()) {
                if (!getTimestamp().equals(other.getTimestamp()))
                    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();
            if (hasAlarmId()) {
                hash = (37 * hash) + ALARM_ID_FIELD_NUMBER;
                hash = (53 * hash) + getAlarmId().hashCode();
            }
            hash = (37 * hash) + ALARM_DESCRIPTION_FIELD_NUMBER;
            hash = (53 * hash) + getAlarmDescription().hashCode();
            hash = (37 * hash) + NAME_FIELD_NUMBER;
            hash = (53 * hash) + getName().hashCode();
            if (hasKpiId()) {
                hash = (37 * hash) + KPI_ID_FIELD_NUMBER;
                hash = (53 * hash) + getKpiId().hashCode();
            }
            if (hasKpiValueRange()) {
                hash = (37 * hash) + KPI_VALUE_RANGE_FIELD_NUMBER;
                hash = (53 * hash) + getKpiValueRange().hashCode();
            }
            if (hasTimestamp()) {
                hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER;
                hash = (53 * hash) + getTimestamp().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static monitoring.Monitoring.AlarmDescriptor parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.AlarmDescriptor parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.AlarmDescriptor parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.AlarmDescriptor parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.AlarmDescriptor parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.AlarmDescriptor parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.AlarmDescriptor parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.AlarmDescriptor 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 monitoring.Monitoring.AlarmDescriptor parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.AlarmDescriptor 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 monitoring.Monitoring.AlarmDescriptor parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.AlarmDescriptor 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(monitoring.Monitoring.AlarmDescriptor 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;
        }

        /**
         * Protobuf type {@code monitoring.AlarmDescriptor}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:monitoring.AlarmDescriptor)
        monitoring.Monitoring.AlarmDescriptorOrBuilder {

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return monitoring.Monitoring.internal_static_monitoring_AlarmDescriptor_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
                return monitoring.Monitoring.internal_static_monitoring_AlarmDescriptor_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.AlarmDescriptor.class, monitoring.Monitoring.AlarmDescriptor.Builder.class);
            }

            // Construct using monitoring.Monitoring.AlarmDescriptor.newBuilder()
            private Builder() {
            }

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

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                alarmId_ = null;
                if (alarmIdBuilder_ != null) {
                    alarmIdBuilder_.dispose();
                    alarmIdBuilder_ = null;
                }
                alarmDescription_ = "";
                name_ = "";
                kpiId_ = null;
                if (kpiIdBuilder_ != null) {
                    kpiIdBuilder_.dispose();
                    kpiIdBuilder_ = null;
                }
                kpiValueRange_ = null;
                if (kpiValueRangeBuilder_ != null) {
                    kpiValueRangeBuilder_.dispose();
                    kpiValueRangeBuilder_ = null;
                }
                timestamp_ = null;
                if (timestampBuilder_ != null) {
                    timestampBuilder_.dispose();
                    timestampBuilder_ = null;
                }
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return monitoring.Monitoring.internal_static_monitoring_AlarmDescriptor_descriptor;
            }

            @java.lang.Override
            public monitoring.Monitoring.AlarmDescriptor getDefaultInstanceForType() {
                return monitoring.Monitoring.AlarmDescriptor.getDefaultInstance();
            }

            @java.lang.Override
            public monitoring.Monitoring.AlarmDescriptor build() {
                monitoring.Monitoring.AlarmDescriptor result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public monitoring.Monitoring.AlarmDescriptor buildPartial() {
                monitoring.Monitoring.AlarmDescriptor result = new monitoring.Monitoring.AlarmDescriptor(this);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                }
                onBuilt();
                return result;
            }

            private void buildPartial0(monitoring.Monitoring.AlarmDescriptor result) {
                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    result.alarmId_ = alarmIdBuilder_ == null ? alarmId_ : alarmIdBuilder_.build();
                }
                if (((from_bitField0_ & 0x00000002) != 0)) {
                    result.alarmDescription_ = alarmDescription_;
                }
                if (((from_bitField0_ & 0x00000004) != 0)) {
                    result.name_ = name_;
                }
                if (((from_bitField0_ & 0x00000008) != 0)) {
                    result.kpiId_ = kpiIdBuilder_ == null ? kpiId_ : kpiIdBuilder_.build();
                }
                if (((from_bitField0_ & 0x00000010) != 0)) {
                    result.kpiValueRange_ = kpiValueRangeBuilder_ == null ? kpiValueRange_ : kpiValueRangeBuilder_.build();
                }
                if (((from_bitField0_ & 0x00000020) != 0)) {
                    result.timestamp_ = timestampBuilder_ == null ? timestamp_ : timestampBuilder_.build();
                }
            }

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

            public Builder mergeFrom(monitoring.Monitoring.AlarmDescriptor other) {
                if (other == monitoring.Monitoring.AlarmDescriptor.getDefaultInstance())
                    return this;
                if (other.hasAlarmId()) {
                    mergeAlarmId(other.getAlarmId());
                }
                if (!other.getAlarmDescription().isEmpty()) {
                    alarmDescription_ = other.alarmDescription_;
                    bitField0_ |= 0x00000002;
                    onChanged();
                }
                if (!other.getName().isEmpty()) {
                    name_ = other.name_;
                    bitField0_ |= 0x00000004;
                    onChanged();
                }
                if (other.hasKpiId()) {
                    mergeKpiId(other.getKpiId());
                }
                if (other.hasKpiValueRange()) {
                    mergeKpiValueRange(other.getKpiValueRange());
                }
                if (other.hasTimestamp()) {
                    mergeTimestamp(other.getTimestamp());
                }
                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:
                                {
                                    input.readMessage(getAlarmIdFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000001;
                                    break;
                                }
                            // case 10
                            case 18:
                                {
                                    alarmDescription_ = input.readStringRequireUtf8();
                                    bitField0_ |= 0x00000002;
                                    break;
                                }
                            // case 18
                            case 26:
                                {
                                    name_ = input.readStringRequireUtf8();
                                    bitField0_ |= 0x00000004;
                                    break;
                                }
                            // case 26
                            case 34:
                                {
                                    input.readMessage(getKpiIdFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000008;
                                    break;
                                }
                            // case 34
                            case 42:
                                {
                                    input.readMessage(getKpiValueRangeFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000010;
                                    break;
                                }
                            // case 42
                            case 50:
                                {
                                    input.readMessage(getTimestampFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000020;
                                    break;
                                }
                            // case 50
                            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 monitoring.Monitoring.AlarmID alarmId_;

            private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.AlarmID, monitoring.Monitoring.AlarmID.Builder, monitoring.Monitoring.AlarmIDOrBuilder> alarmIdBuilder_;

            /**
             * <code>.monitoring.AlarmID alarm_id = 1;</code>
             * @return Whether the alarmId field is set.
             */
            public boolean hasAlarmId() {
                return ((bitField0_ & 0x00000001) != 0);
            }

            /**
             * <code>.monitoring.AlarmID alarm_id = 1;</code>
             * @return The alarmId.
             */
            public monitoring.Monitoring.AlarmID getAlarmId() {
                if (alarmIdBuilder_ == null) {
                    return alarmId_ == null ? monitoring.Monitoring.AlarmID.getDefaultInstance() : alarmId_;
                } else {
                    return alarmIdBuilder_.getMessage();
                }
            }

            /**
             * <code>.monitoring.AlarmID alarm_id = 1;</code>
             */
            public Builder setAlarmId(monitoring.Monitoring.AlarmID value) {
                if (alarmIdBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    alarmId_ = value;
                } else {
                    alarmIdBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.AlarmID alarm_id = 1;</code>
             */
            public Builder setAlarmId(monitoring.Monitoring.AlarmID.Builder builderForValue) {
                if (alarmIdBuilder_ == null) {
                    alarmId_ = builderForValue.build();
                } else {
                    alarmIdBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.AlarmID alarm_id = 1;</code>
             */
            public Builder mergeAlarmId(monitoring.Monitoring.AlarmID value) {
                if (alarmIdBuilder_ == null) {
                    if (((bitField0_ & 0x00000001) != 0) && alarmId_ != null && alarmId_ != monitoring.Monitoring.AlarmID.getDefaultInstance()) {
                        getAlarmIdBuilder().mergeFrom(value);
                    } else {
                        alarmId_ = value;
                    }
                } else {
                    alarmIdBuilder_.mergeFrom(value);
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.AlarmID alarm_id = 1;</code>
             */
            public Builder clearAlarmId() {
                bitField0_ = (bitField0_ & ~0x00000001);
                alarmId_ = null;
                if (alarmIdBuilder_ != null) {
                    alarmIdBuilder_.dispose();
                    alarmIdBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.AlarmID alarm_id = 1;</code>
             */
            public monitoring.Monitoring.AlarmID.Builder getAlarmIdBuilder() {
                bitField0_ |= 0x00000001;
                onChanged();
                return getAlarmIdFieldBuilder().getBuilder();
            }

            /**
             * <code>.monitoring.AlarmID alarm_id = 1;</code>
             */
            public monitoring.Monitoring.AlarmIDOrBuilder getAlarmIdOrBuilder() {
                if (alarmIdBuilder_ != null) {
                    return alarmIdBuilder_.getMessageOrBuilder();
                } else {
                    return alarmId_ == null ? monitoring.Monitoring.AlarmID.getDefaultInstance() : alarmId_;
                }
            }

            /**
             * <code>.monitoring.AlarmID alarm_id = 1;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.AlarmID, monitoring.Monitoring.AlarmID.Builder, monitoring.Monitoring.AlarmIDOrBuilder> getAlarmIdFieldBuilder() {
                if (alarmIdBuilder_ == null) {
                    alarmIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.AlarmID, monitoring.Monitoring.AlarmID.Builder, monitoring.Monitoring.AlarmIDOrBuilder>(getAlarmId(), getParentForChildren(), isClean());
                    alarmId_ = null;
                }
                return alarmIdBuilder_;
            }

            private java.lang.Object alarmDescription_ = "";

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

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

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

            /**
             * <code>string alarm_description = 2;</code>
             * @return This builder for chaining.
             */
            public Builder clearAlarmDescription() {
                alarmDescription_ = getDefaultInstance().getAlarmDescription();
                bitField0_ = (bitField0_ & ~0x00000002);
                onChanged();
                return this;
            }

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

            private java.lang.Object name_ = "";

            /**
             * <code>string name = 3;</code>
             * @return The name.
             */
            public java.lang.String getName() {
                java.lang.Object ref = name_;
                if (!(ref instanceof java.lang.String)) {
                    com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    name_ = s;
                    return s;
                } else {
                    return (java.lang.String) ref;
                }
            }

            /**
             * <code>string name = 3;</code>
             * @return The bytes for name.
             */
            public com.google.protobuf.ByteString getNameBytes() {
                java.lang.Object ref = name_;
                if (ref instanceof String) {
                    com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
                    name_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            /**
             * <code>string name = 3;</code>
             * @param value The name to set.
             * @return This builder for chaining.
             */
            public Builder setName(java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                name_ = value;
                bitField0_ |= 0x00000004;
                onChanged();
                return this;
            }

            /**
             * <code>string name = 3;</code>
             * @return This builder for chaining.
             */
            public Builder clearName() {
                name_ = getDefaultInstance().getName();
                bitField0_ = (bitField0_ & ~0x00000004);
                onChanged();
                return this;
            }

            /**
             * <code>string name = 3;</code>
             * @param value The bytes for name to set.
             * @return This builder for chaining.
             */
            public Builder setNameBytes(com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                name_ = value;
                bitField0_ |= 0x00000004;
                onChanged();
                return this;
            }

            private monitoring.Monitoring.KpiId kpiId_;

            private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder> kpiIdBuilder_;

            /**
             * <code>.monitoring.KpiId kpi_id = 4;</code>
             * @return Whether the kpiId field is set.
             */
            public boolean hasKpiId() {
                return ((bitField0_ & 0x00000008) != 0);
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 4;</code>
             * @return The kpiId.
             */
            public monitoring.Monitoring.KpiId getKpiId() {
                if (kpiIdBuilder_ == null) {
                    return kpiId_ == null ? monitoring.Monitoring.KpiId.getDefaultInstance() : kpiId_;
                } else {
                    return kpiIdBuilder_.getMessage();
                }
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 4;</code>
             */
            public Builder setKpiId(monitoring.Monitoring.KpiId value) {
                if (kpiIdBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    kpiId_ = value;
                } else {
                    kpiIdBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000008;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 4;</code>
             */
            public Builder setKpiId(monitoring.Monitoring.KpiId.Builder builderForValue) {
                if (kpiIdBuilder_ == null) {
                    kpiId_ = builderForValue.build();
                } else {
                    kpiIdBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000008;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 4;</code>
             */
            public Builder mergeKpiId(monitoring.Monitoring.KpiId value) {
                if (kpiIdBuilder_ == null) {
                    if (((bitField0_ & 0x00000008) != 0) && kpiId_ != null && kpiId_ != monitoring.Monitoring.KpiId.getDefaultInstance()) {
                        getKpiIdBuilder().mergeFrom(value);
                    } else {
                        kpiId_ = value;
                    }
                } else {
                    kpiIdBuilder_.mergeFrom(value);
                }
                bitField0_ |= 0x00000008;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 4;</code>
             */
            public Builder clearKpiId() {
                bitField0_ = (bitField0_ & ~0x00000008);
                kpiId_ = null;
                if (kpiIdBuilder_ != null) {
                    kpiIdBuilder_.dispose();
                    kpiIdBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 4;</code>
             */
            public monitoring.Monitoring.KpiId.Builder getKpiIdBuilder() {
                bitField0_ |= 0x00000008;
                onChanged();
                return getKpiIdFieldBuilder().getBuilder();
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 4;</code>
             */
            public monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder() {
                if (kpiIdBuilder_ != null) {
                    return kpiIdBuilder_.getMessageOrBuilder();
                } else {
                    return kpiId_ == null ? monitoring.Monitoring.KpiId.getDefaultInstance() : kpiId_;
                }
            }

            /**
             * <code>.monitoring.KpiId kpi_id = 4;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder> getKpiIdFieldBuilder() {
                if (kpiIdBuilder_ == null) {
                    kpiIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder>(getKpiId(), getParentForChildren(), isClean());
                    kpiId_ = null;
                }
                return kpiIdBuilder_;
            }

            private monitoring.Monitoring.KpiValueRange kpiValueRange_;

            private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiValueRange, monitoring.Monitoring.KpiValueRange.Builder, monitoring.Monitoring.KpiValueRangeOrBuilder> kpiValueRangeBuilder_;

            /**
             * <code>.monitoring.KpiValueRange kpi_value_range = 5;</code>
             * @return Whether the kpiValueRange field is set.
             */
            public boolean hasKpiValueRange() {
                return ((bitField0_ & 0x00000010) != 0);
            }

            /**
             * <code>.monitoring.KpiValueRange kpi_value_range = 5;</code>
             * @return The kpiValueRange.
             */
            public monitoring.Monitoring.KpiValueRange getKpiValueRange() {
                if (kpiValueRangeBuilder_ == null) {
                    return kpiValueRange_ == null ? monitoring.Monitoring.KpiValueRange.getDefaultInstance() : kpiValueRange_;
                } else {
                    return kpiValueRangeBuilder_.getMessage();
                }
            }

            /**
             * <code>.monitoring.KpiValueRange kpi_value_range = 5;</code>
             */
            public Builder setKpiValueRange(monitoring.Monitoring.KpiValueRange value) {
                if (kpiValueRangeBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    kpiValueRange_ = value;
                } else {
                    kpiValueRangeBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000010;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiValueRange kpi_value_range = 5;</code>
             */
            public Builder setKpiValueRange(monitoring.Monitoring.KpiValueRange.Builder builderForValue) {
                if (kpiValueRangeBuilder_ == null) {
                    kpiValueRange_ = builderForValue.build();
                } else {
                    kpiValueRangeBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000010;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiValueRange kpi_value_range = 5;</code>
             */
            public Builder mergeKpiValueRange(monitoring.Monitoring.KpiValueRange value) {
                if (kpiValueRangeBuilder_ == null) {
                    if (((bitField0_ & 0x00000010) != 0) && kpiValueRange_ != null && kpiValueRange_ != monitoring.Monitoring.KpiValueRange.getDefaultInstance()) {
                        getKpiValueRangeBuilder().mergeFrom(value);
                    } else {
                        kpiValueRange_ = value;
                    }
                } else {
                    kpiValueRangeBuilder_.mergeFrom(value);
                }
                bitField0_ |= 0x00000010;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiValueRange kpi_value_range = 5;</code>
             */
            public Builder clearKpiValueRange() {
                bitField0_ = (bitField0_ & ~0x00000010);
                kpiValueRange_ = null;
                if (kpiValueRangeBuilder_ != null) {
                    kpiValueRangeBuilder_.dispose();
                    kpiValueRangeBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiValueRange kpi_value_range = 5;</code>
             */
            public monitoring.Monitoring.KpiValueRange.Builder getKpiValueRangeBuilder() {
                bitField0_ |= 0x00000010;
                onChanged();
                return getKpiValueRangeFieldBuilder().getBuilder();
            }

            /**
             * <code>.monitoring.KpiValueRange kpi_value_range = 5;</code>
             */
            public monitoring.Monitoring.KpiValueRangeOrBuilder getKpiValueRangeOrBuilder() {
                if (kpiValueRangeBuilder_ != null) {
                    return kpiValueRangeBuilder_.getMessageOrBuilder();
                } else {
                    return kpiValueRange_ == null ? monitoring.Monitoring.KpiValueRange.getDefaultInstance() : kpiValueRange_;
                }
            }

            /**
             * <code>.monitoring.KpiValueRange kpi_value_range = 5;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiValueRange, monitoring.Monitoring.KpiValueRange.Builder, monitoring.Monitoring.KpiValueRangeOrBuilder> getKpiValueRangeFieldBuilder() {
                if (kpiValueRangeBuilder_ == null) {
                    kpiValueRangeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiValueRange, monitoring.Monitoring.KpiValueRange.Builder, monitoring.Monitoring.KpiValueRangeOrBuilder>(getKpiValueRange(), getParentForChildren(), isClean());
                    kpiValueRange_ = null;
                }
                return kpiValueRangeBuilder_;
            }

            private context.ContextOuterClass.Timestamp timestamp_;

            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Timestamp, context.ContextOuterClass.Timestamp.Builder, context.ContextOuterClass.TimestampOrBuilder> timestampBuilder_;

            /**
             * <code>.context.Timestamp timestamp = 6;</code>
             * @return Whether the timestamp field is set.
             */
            public boolean hasTimestamp() {
                return ((bitField0_ & 0x00000020) != 0);
            }

            /**
             * <code>.context.Timestamp timestamp = 6;</code>
             * @return The timestamp.
             */
            public context.ContextOuterClass.Timestamp getTimestamp() {
                if (timestampBuilder_ == null) {
                    return timestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : timestamp_;
                } else {
                    return timestampBuilder_.getMessage();
                }
            }

            /**
             * <code>.context.Timestamp timestamp = 6;</code>
             */
            public Builder setTimestamp(context.ContextOuterClass.Timestamp value) {
                if (timestampBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    timestamp_ = value;
                } else {
                    timestampBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000020;
                onChanged();
                return this;
            }

            /**
             * <code>.context.Timestamp timestamp = 6;</code>
             */
            public Builder setTimestamp(context.ContextOuterClass.Timestamp.Builder builderForValue) {
                if (timestampBuilder_ == null) {
                    timestamp_ = builderForValue.build();
                } else {
                    timestampBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000020;
                onChanged();
                return this;
            }

            /**
             * <code>.context.Timestamp timestamp = 6;</code>
             */
            public Builder mergeTimestamp(context.ContextOuterClass.Timestamp value) {
                if (timestampBuilder_ == null) {
                    if (((bitField0_ & 0x00000020) != 0) && timestamp_ != null && timestamp_ != context.ContextOuterClass.Timestamp.getDefaultInstance()) {
                        getTimestampBuilder().mergeFrom(value);
                    } else {
                        timestamp_ = value;
                    }
                } else {
                    timestampBuilder_.mergeFrom(value);
                }
                bitField0_ |= 0x00000020;
                onChanged();
                return this;
            }

            /**
             * <code>.context.Timestamp timestamp = 6;</code>
             */
            public Builder clearTimestamp() {
                bitField0_ = (bitField0_ & ~0x00000020);
                timestamp_ = null;
                if (timestampBuilder_ != null) {
                    timestampBuilder_.dispose();
                    timestampBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <code>.context.Timestamp timestamp = 6;</code>
             */
            public context.ContextOuterClass.Timestamp.Builder getTimestampBuilder() {
                bitField0_ |= 0x00000020;
                onChanged();
                return getTimestampFieldBuilder().getBuilder();
            }

            /**
             * <code>.context.Timestamp timestamp = 6;</code>
             */
            public context.ContextOuterClass.TimestampOrBuilder getTimestampOrBuilder() {
                if (timestampBuilder_ != null) {
                    return timestampBuilder_.getMessageOrBuilder();
                } else {
                    return timestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : timestamp_;
                }
            }

            /**
             * <code>.context.Timestamp timestamp = 6;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Timestamp, context.ContextOuterClass.Timestamp.Builder, context.ContextOuterClass.TimestampOrBuilder> getTimestampFieldBuilder() {
                if (timestampBuilder_ == null) {
                    timestampBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Timestamp, context.ContextOuterClass.Timestamp.Builder, context.ContextOuterClass.TimestampOrBuilder>(getTimestamp(), getParentForChildren(), isClean());
                    timestamp_ = null;
                }
                return timestampBuilder_;
            }

            @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:monitoring.AlarmDescriptor)
        }

        // @@protoc_insertion_point(class_scope:monitoring.AlarmDescriptor)
        private static final monitoring.Monitoring.AlarmDescriptor DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new monitoring.Monitoring.AlarmDescriptor();
        }

        public static monitoring.Monitoring.AlarmDescriptor getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

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

            @java.lang.Override
            public AlarmDescriptor 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<AlarmDescriptor> parser() {
            return PARSER;
        }

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

        @java.lang.Override
        public monitoring.Monitoring.AlarmDescriptor getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    }

    public interface AlarmIDOrBuilder extends // @@protoc_insertion_point(interface_extends:monitoring.AlarmID)
    com.google.protobuf.MessageOrBuilder {

        /**
         * <code>.context.Uuid alarm_id = 1;</code>
         * @return Whether the alarmId field is set.
         */
        boolean hasAlarmId();

        /**
         * <code>.context.Uuid alarm_id = 1;</code>
         * @return The alarmId.
         */
        context.ContextOuterClass.Uuid getAlarmId();

        /**
         * <code>.context.Uuid alarm_id = 1;</code>
         */
        context.ContextOuterClass.UuidOrBuilder getAlarmIdOrBuilder();
    }

    /**
     * Protobuf type {@code monitoring.AlarmID}
     */
    public static final class AlarmID extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:monitoring.AlarmID)
    AlarmIDOrBuilder {

        private static final long serialVersionUID = 0L;

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

        private AlarmID() {
        }

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

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return monitoring.Monitoring.internal_static_monitoring_AlarmID_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            return monitoring.Monitoring.internal_static_monitoring_AlarmID_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.AlarmID.class, monitoring.Monitoring.AlarmID.Builder.class);
        }

        public static final int ALARM_ID_FIELD_NUMBER = 1;

        private context.ContextOuterClass.Uuid alarmId_;

        /**
         * <code>.context.Uuid alarm_id = 1;</code>
         * @return Whether the alarmId field is set.
         */
        @java.lang.Override
        public boolean hasAlarmId() {
            return alarmId_ != null;
        }

        /**
         * <code>.context.Uuid alarm_id = 1;</code>
         * @return The alarmId.
         */
        @java.lang.Override
        public context.ContextOuterClass.Uuid getAlarmId() {
            return alarmId_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : alarmId_;
        }

        /**
         * <code>.context.Uuid alarm_id = 1;</code>
         */
        @java.lang.Override
        public context.ContextOuterClass.UuidOrBuilder getAlarmIdOrBuilder() {
            return alarmId_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : alarmId_;
        }

        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 (alarmId_ != null) {
                output.writeMessage(1, getAlarmId());
            }
            getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;
            size = 0;
            if (alarmId_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getAlarmId());
            }
            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 monitoring.Monitoring.AlarmID)) {
                return super.equals(obj);
            }
            monitoring.Monitoring.AlarmID other = (monitoring.Monitoring.AlarmID) obj;
            if (hasAlarmId() != other.hasAlarmId())
                return false;
            if (hasAlarmId()) {
                if (!getAlarmId().equals(other.getAlarmId()))
                    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();
            if (hasAlarmId()) {
                hash = (37 * hash) + ALARM_ID_FIELD_NUMBER;
                hash = (53 * hash) + getAlarmId().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static monitoring.Monitoring.AlarmID parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.AlarmID parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.AlarmID parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.AlarmID parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.AlarmID parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.AlarmID parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.AlarmID parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.AlarmID 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 monitoring.Monitoring.AlarmID parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.AlarmID 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 monitoring.Monitoring.AlarmID parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.AlarmID 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(monitoring.Monitoring.AlarmID 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;
        }

        /**
         * Protobuf type {@code monitoring.AlarmID}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:monitoring.AlarmID)
        monitoring.Monitoring.AlarmIDOrBuilder {

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return monitoring.Monitoring.internal_static_monitoring_AlarmID_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
                return monitoring.Monitoring.internal_static_monitoring_AlarmID_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.AlarmID.class, monitoring.Monitoring.AlarmID.Builder.class);
            }

            // Construct using monitoring.Monitoring.AlarmID.newBuilder()
            private Builder() {
            }

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

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                alarmId_ = null;
                if (alarmIdBuilder_ != null) {
                    alarmIdBuilder_.dispose();
                    alarmIdBuilder_ = null;
                }
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return monitoring.Monitoring.internal_static_monitoring_AlarmID_descriptor;
            }

            @java.lang.Override
            public monitoring.Monitoring.AlarmID getDefaultInstanceForType() {
                return monitoring.Monitoring.AlarmID.getDefaultInstance();
            }

            @java.lang.Override
            public monitoring.Monitoring.AlarmID build() {
                monitoring.Monitoring.AlarmID result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public monitoring.Monitoring.AlarmID buildPartial() {
                monitoring.Monitoring.AlarmID result = new monitoring.Monitoring.AlarmID(this);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                }
                onBuilt();
                return result;
            }

            private void buildPartial0(monitoring.Monitoring.AlarmID result) {
                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    result.alarmId_ = alarmIdBuilder_ == null ? alarmId_ : alarmIdBuilder_.build();
                }
            }

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

            public Builder mergeFrom(monitoring.Monitoring.AlarmID other) {
                if (other == monitoring.Monitoring.AlarmID.getDefaultInstance())
                    return this;
                if (other.hasAlarmId()) {
                    mergeAlarmId(other.getAlarmId());
                }
                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:
                                {
                                    input.readMessage(getAlarmIdFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000001;
                                    break;
                                }
                            // case 10
                            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 context.ContextOuterClass.Uuid alarmId_;

            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> alarmIdBuilder_;

            /**
             * <code>.context.Uuid alarm_id = 1;</code>
             * @return Whether the alarmId field is set.
             */
            public boolean hasAlarmId() {
                return ((bitField0_ & 0x00000001) != 0);
            }

            /**
             * <code>.context.Uuid alarm_id = 1;</code>
             * @return The alarmId.
             */
            public context.ContextOuterClass.Uuid getAlarmId() {
                if (alarmIdBuilder_ == null) {
                    return alarmId_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : alarmId_;
                } else {
                    return alarmIdBuilder_.getMessage();
                }
            }

            /**
             * <code>.context.Uuid alarm_id = 1;</code>
             */
            public Builder setAlarmId(context.ContextOuterClass.Uuid value) {
                if (alarmIdBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    alarmId_ = value;
                } else {
                    alarmIdBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.context.Uuid alarm_id = 1;</code>
             */
            public Builder setAlarmId(context.ContextOuterClass.Uuid.Builder builderForValue) {
                if (alarmIdBuilder_ == null) {
                    alarmId_ = builderForValue.build();
                } else {
                    alarmIdBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.context.Uuid alarm_id = 1;</code>
             */
            public Builder mergeAlarmId(context.ContextOuterClass.Uuid value) {
                if (alarmIdBuilder_ == null) {
                    if (((bitField0_ & 0x00000001) != 0) && alarmId_ != null && alarmId_ != context.ContextOuterClass.Uuid.getDefaultInstance()) {
                        getAlarmIdBuilder().mergeFrom(value);
                    } else {
                        alarmId_ = value;
                    }
                } else {
                    alarmIdBuilder_.mergeFrom(value);
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.context.Uuid alarm_id = 1;</code>
             */
            public Builder clearAlarmId() {
                bitField0_ = (bitField0_ & ~0x00000001);
                alarmId_ = null;
                if (alarmIdBuilder_ != null) {
                    alarmIdBuilder_.dispose();
                    alarmIdBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <code>.context.Uuid alarm_id = 1;</code>
             */
            public context.ContextOuterClass.Uuid.Builder getAlarmIdBuilder() {
                bitField0_ |= 0x00000001;
                onChanged();
                return getAlarmIdFieldBuilder().getBuilder();
            }

            /**
             * <code>.context.Uuid alarm_id = 1;</code>
             */
            public context.ContextOuterClass.UuidOrBuilder getAlarmIdOrBuilder() {
                if (alarmIdBuilder_ != null) {
                    return alarmIdBuilder_.getMessageOrBuilder();
                } else {
                    return alarmId_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : alarmId_;
                }
            }

            /**
             * <code>.context.Uuid alarm_id = 1;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> getAlarmIdFieldBuilder() {
                if (alarmIdBuilder_ == null) {
                    alarmIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder>(getAlarmId(), getParentForChildren(), isClean());
                    alarmId_ = null;
                }
                return alarmIdBuilder_;
            }

            @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:monitoring.AlarmID)
        }

        // @@protoc_insertion_point(class_scope:monitoring.AlarmID)
        private static final monitoring.Monitoring.AlarmID DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new monitoring.Monitoring.AlarmID();
        }

        public static monitoring.Monitoring.AlarmID getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

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

            @java.lang.Override
            public AlarmID 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<AlarmID> parser() {
            return PARSER;
        }

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

        @java.lang.Override
        public monitoring.Monitoring.AlarmID getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    }

    public interface AlarmSubscriptionOrBuilder extends // @@protoc_insertion_point(interface_extends:monitoring.AlarmSubscription)
    com.google.protobuf.MessageOrBuilder {

        /**
         * <code>.monitoring.AlarmID alarm_id = 1;</code>
         * @return Whether the alarmId field is set.
         */
        boolean hasAlarmId();

        /**
         * <code>.monitoring.AlarmID alarm_id = 1;</code>
         * @return The alarmId.
         */
        monitoring.Monitoring.AlarmID getAlarmId();

        /**
         * <code>.monitoring.AlarmID alarm_id = 1;</code>
         */
        monitoring.Monitoring.AlarmIDOrBuilder getAlarmIdOrBuilder();

        /**
         * <code>float subscription_timeout_s = 2;</code>
         * @return The subscriptionTimeoutS.
         */
        float getSubscriptionTimeoutS();

        /**
         * <code>float subscription_frequency_ms = 3;</code>
         * @return The subscriptionFrequencyMs.
         */
        float getSubscriptionFrequencyMs();
    }

    /**
     * Protobuf type {@code monitoring.AlarmSubscription}
     */
    public static final class AlarmSubscription extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:monitoring.AlarmSubscription)
    AlarmSubscriptionOrBuilder {

        private static final long serialVersionUID = 0L;

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

        private AlarmSubscription() {
        }

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

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return monitoring.Monitoring.internal_static_monitoring_AlarmSubscription_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            return monitoring.Monitoring.internal_static_monitoring_AlarmSubscription_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.AlarmSubscription.class, monitoring.Monitoring.AlarmSubscription.Builder.class);
        }

        public static final int ALARM_ID_FIELD_NUMBER = 1;

        private monitoring.Monitoring.AlarmID alarmId_;

        /**
         * <code>.monitoring.AlarmID alarm_id = 1;</code>
         * @return Whether the alarmId field is set.
         */
        @java.lang.Override
        public boolean hasAlarmId() {
            return alarmId_ != null;
        }

        /**
         * <code>.monitoring.AlarmID alarm_id = 1;</code>
         * @return The alarmId.
         */
        @java.lang.Override
        public monitoring.Monitoring.AlarmID getAlarmId() {
            return alarmId_ == null ? monitoring.Monitoring.AlarmID.getDefaultInstance() : alarmId_;
        }

        /**
         * <code>.monitoring.AlarmID alarm_id = 1;</code>
         */
        @java.lang.Override
        public monitoring.Monitoring.AlarmIDOrBuilder getAlarmIdOrBuilder() {
            return alarmId_ == null ? monitoring.Monitoring.AlarmID.getDefaultInstance() : alarmId_;
        }

        public static final int SUBSCRIPTION_TIMEOUT_S_FIELD_NUMBER = 2;

        private float subscriptionTimeoutS_ = 0F;

        /**
         * <code>float subscription_timeout_s = 2;</code>
         * @return The subscriptionTimeoutS.
         */
        @java.lang.Override
        public float getSubscriptionTimeoutS() {
            return subscriptionTimeoutS_;
        }

        public static final int SUBSCRIPTION_FREQUENCY_MS_FIELD_NUMBER = 3;

        private float subscriptionFrequencyMs_ = 0F;

        /**
         * <code>float subscription_frequency_ms = 3;</code>
         * @return The subscriptionFrequencyMs.
         */
        @java.lang.Override
        public float getSubscriptionFrequencyMs() {
            return subscriptionFrequencyMs_;
        }

        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 (alarmId_ != null) {
                output.writeMessage(1, getAlarmId());
            }
            if (java.lang.Float.floatToRawIntBits(subscriptionTimeoutS_) != 0) {
                output.writeFloat(2, subscriptionTimeoutS_);
            }
            if (java.lang.Float.floatToRawIntBits(subscriptionFrequencyMs_) != 0) {
                output.writeFloat(3, subscriptionFrequencyMs_);
            }
            getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;
            size = 0;
            if (alarmId_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getAlarmId());
            }
            if (java.lang.Float.floatToRawIntBits(subscriptionTimeoutS_) != 0) {
                size += com.google.protobuf.CodedOutputStream.computeFloatSize(2, subscriptionTimeoutS_);
            }
            if (java.lang.Float.floatToRawIntBits(subscriptionFrequencyMs_) != 0) {
                size += com.google.protobuf.CodedOutputStream.computeFloatSize(3, subscriptionFrequencyMs_);
            }
            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 monitoring.Monitoring.AlarmSubscription)) {
                return super.equals(obj);
            }
            monitoring.Monitoring.AlarmSubscription other = (monitoring.Monitoring.AlarmSubscription) obj;
            if (hasAlarmId() != other.hasAlarmId())
                return false;
            if (hasAlarmId()) {
                if (!getAlarmId().equals(other.getAlarmId()))
                    return false;
            }
            if (java.lang.Float.floatToIntBits(getSubscriptionTimeoutS()) != java.lang.Float.floatToIntBits(other.getSubscriptionTimeoutS()))
                return false;
            if (java.lang.Float.floatToIntBits(getSubscriptionFrequencyMs()) != java.lang.Float.floatToIntBits(other.getSubscriptionFrequencyMs()))
                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();
            if (hasAlarmId()) {
                hash = (37 * hash) + ALARM_ID_FIELD_NUMBER;
                hash = (53 * hash) + getAlarmId().hashCode();
            }
            hash = (37 * hash) + SUBSCRIPTION_TIMEOUT_S_FIELD_NUMBER;
            hash = (53 * hash) + java.lang.Float.floatToIntBits(getSubscriptionTimeoutS());
            hash = (37 * hash) + SUBSCRIPTION_FREQUENCY_MS_FIELD_NUMBER;
            hash = (53 * hash) + java.lang.Float.floatToIntBits(getSubscriptionFrequencyMs());
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static monitoring.Monitoring.AlarmSubscription parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.AlarmSubscription parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.AlarmSubscription parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.AlarmSubscription parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.AlarmSubscription parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.AlarmSubscription parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.AlarmSubscription parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.AlarmSubscription 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 monitoring.Monitoring.AlarmSubscription parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.AlarmSubscription 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 monitoring.Monitoring.AlarmSubscription parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.AlarmSubscription 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(monitoring.Monitoring.AlarmSubscription 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;
        }

        /**
         * Protobuf type {@code monitoring.AlarmSubscription}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:monitoring.AlarmSubscription)
        monitoring.Monitoring.AlarmSubscriptionOrBuilder {

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return monitoring.Monitoring.internal_static_monitoring_AlarmSubscription_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
                return monitoring.Monitoring.internal_static_monitoring_AlarmSubscription_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.AlarmSubscription.class, monitoring.Monitoring.AlarmSubscription.Builder.class);
            }

            // Construct using monitoring.Monitoring.AlarmSubscription.newBuilder()
            private Builder() {
            }

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

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                alarmId_ = null;
                if (alarmIdBuilder_ != null) {
                    alarmIdBuilder_.dispose();
                    alarmIdBuilder_ = null;
                }
                subscriptionTimeoutS_ = 0F;
                subscriptionFrequencyMs_ = 0F;
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return monitoring.Monitoring.internal_static_monitoring_AlarmSubscription_descriptor;
            }

            @java.lang.Override
            public monitoring.Monitoring.AlarmSubscription getDefaultInstanceForType() {
                return monitoring.Monitoring.AlarmSubscription.getDefaultInstance();
            }

            @java.lang.Override
            public monitoring.Monitoring.AlarmSubscription build() {
                monitoring.Monitoring.AlarmSubscription result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public monitoring.Monitoring.AlarmSubscription buildPartial() {
                monitoring.Monitoring.AlarmSubscription result = new monitoring.Monitoring.AlarmSubscription(this);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                }
                onBuilt();
                return result;
            }

            private void buildPartial0(monitoring.Monitoring.AlarmSubscription result) {
                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    result.alarmId_ = alarmIdBuilder_ == null ? alarmId_ : alarmIdBuilder_.build();
                }
                if (((from_bitField0_ & 0x00000002) != 0)) {
                    result.subscriptionTimeoutS_ = subscriptionTimeoutS_;
                }
                if (((from_bitField0_ & 0x00000004) != 0)) {
                    result.subscriptionFrequencyMs_ = subscriptionFrequencyMs_;
                }
            }

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

            public Builder mergeFrom(monitoring.Monitoring.AlarmSubscription other) {
                if (other == monitoring.Monitoring.AlarmSubscription.getDefaultInstance())
                    return this;
                if (other.hasAlarmId()) {
                    mergeAlarmId(other.getAlarmId());
                }
                if (other.getSubscriptionTimeoutS() != 0F) {
                    setSubscriptionTimeoutS(other.getSubscriptionTimeoutS());
                }
                if (other.getSubscriptionFrequencyMs() != 0F) {
                    setSubscriptionFrequencyMs(other.getSubscriptionFrequencyMs());
                }
                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:
                                {
                                    input.readMessage(getAlarmIdFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000001;
                                    break;
                                }
                            // case 10
                            case 21:
                                {
                                    subscriptionTimeoutS_ = input.readFloat();
                                    bitField0_ |= 0x00000002;
                                    break;
                                }
                            // case 21
                            case 29:
                                {
                                    subscriptionFrequencyMs_ = input.readFloat();
                                    bitField0_ |= 0x00000004;
                                    break;
                                }
                            // case 29
                            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 monitoring.Monitoring.AlarmID alarmId_;

            private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.AlarmID, monitoring.Monitoring.AlarmID.Builder, monitoring.Monitoring.AlarmIDOrBuilder> alarmIdBuilder_;

            /**
             * <code>.monitoring.AlarmID alarm_id = 1;</code>
             * @return Whether the alarmId field is set.
             */
            public boolean hasAlarmId() {
                return ((bitField0_ & 0x00000001) != 0);
            }

            /**
             * <code>.monitoring.AlarmID alarm_id = 1;</code>
             * @return The alarmId.
             */
            public monitoring.Monitoring.AlarmID getAlarmId() {
                if (alarmIdBuilder_ == null) {
                    return alarmId_ == null ? monitoring.Monitoring.AlarmID.getDefaultInstance() : alarmId_;
                } else {
                    return alarmIdBuilder_.getMessage();
                }
            }

            /**
             * <code>.monitoring.AlarmID alarm_id = 1;</code>
             */
            public Builder setAlarmId(monitoring.Monitoring.AlarmID value) {
                if (alarmIdBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    alarmId_ = value;
                } else {
                    alarmIdBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.AlarmID alarm_id = 1;</code>
             */
            public Builder setAlarmId(monitoring.Monitoring.AlarmID.Builder builderForValue) {
                if (alarmIdBuilder_ == null) {
                    alarmId_ = builderForValue.build();
                } else {
                    alarmIdBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.AlarmID alarm_id = 1;</code>
             */
            public Builder mergeAlarmId(monitoring.Monitoring.AlarmID value) {
                if (alarmIdBuilder_ == null) {
                    if (((bitField0_ & 0x00000001) != 0) && alarmId_ != null && alarmId_ != monitoring.Monitoring.AlarmID.getDefaultInstance()) {
                        getAlarmIdBuilder().mergeFrom(value);
                    } else {
                        alarmId_ = value;
                    }
                } else {
                    alarmIdBuilder_.mergeFrom(value);
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.AlarmID alarm_id = 1;</code>
             */
            public Builder clearAlarmId() {
                bitField0_ = (bitField0_ & ~0x00000001);
                alarmId_ = null;
                if (alarmIdBuilder_ != null) {
                    alarmIdBuilder_.dispose();
                    alarmIdBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.AlarmID alarm_id = 1;</code>
             */
            public monitoring.Monitoring.AlarmID.Builder getAlarmIdBuilder() {
                bitField0_ |= 0x00000001;
                onChanged();
                return getAlarmIdFieldBuilder().getBuilder();
            }

            /**
             * <code>.monitoring.AlarmID alarm_id = 1;</code>
             */
            public monitoring.Monitoring.AlarmIDOrBuilder getAlarmIdOrBuilder() {
                if (alarmIdBuilder_ != null) {
                    return alarmIdBuilder_.getMessageOrBuilder();
                } else {
                    return alarmId_ == null ? monitoring.Monitoring.AlarmID.getDefaultInstance() : alarmId_;
                }
            }

            /**
             * <code>.monitoring.AlarmID alarm_id = 1;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.AlarmID, monitoring.Monitoring.AlarmID.Builder, monitoring.Monitoring.AlarmIDOrBuilder> getAlarmIdFieldBuilder() {
                if (alarmIdBuilder_ == null) {
                    alarmIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.AlarmID, monitoring.Monitoring.AlarmID.Builder, monitoring.Monitoring.AlarmIDOrBuilder>(getAlarmId(), getParentForChildren(), isClean());
                    alarmId_ = null;
                }
                return alarmIdBuilder_;
            }

            private float subscriptionTimeoutS_;

            /**
             * <code>float subscription_timeout_s = 2;</code>
             * @return The subscriptionTimeoutS.
             */
            @java.lang.Override
            public float getSubscriptionTimeoutS() {
                return subscriptionTimeoutS_;
            }

            /**
             * <code>float subscription_timeout_s = 2;</code>
             * @param value The subscriptionTimeoutS to set.
             * @return This builder for chaining.
             */
            public Builder setSubscriptionTimeoutS(float value) {
                subscriptionTimeoutS_ = value;
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>float subscription_timeout_s = 2;</code>
             * @return This builder for chaining.
             */
            public Builder clearSubscriptionTimeoutS() {
                bitField0_ = (bitField0_ & ~0x00000002);
                subscriptionTimeoutS_ = 0F;
                onChanged();
                return this;
            }

            private float subscriptionFrequencyMs_;

            /**
             * <code>float subscription_frequency_ms = 3;</code>
             * @return The subscriptionFrequencyMs.
             */
            @java.lang.Override
            public float getSubscriptionFrequencyMs() {
                return subscriptionFrequencyMs_;
            }

            /**
             * <code>float subscription_frequency_ms = 3;</code>
             * @param value The subscriptionFrequencyMs to set.
             * @return This builder for chaining.
             */
            public Builder setSubscriptionFrequencyMs(float value) {
                subscriptionFrequencyMs_ = value;
                bitField0_ |= 0x00000004;
                onChanged();
                return this;
            }

            /**
             * <code>float subscription_frequency_ms = 3;</code>
             * @return This builder for chaining.
             */
            public Builder clearSubscriptionFrequencyMs() {
                bitField0_ = (bitField0_ & ~0x00000004);
                subscriptionFrequencyMs_ = 0F;
                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:monitoring.AlarmSubscription)
        }

        // @@protoc_insertion_point(class_scope:monitoring.AlarmSubscription)
        private static final monitoring.Monitoring.AlarmSubscription DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new monitoring.Monitoring.AlarmSubscription();
        }

        public static monitoring.Monitoring.AlarmSubscription getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

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

            @java.lang.Override
            public AlarmSubscription 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<AlarmSubscription> parser() {
            return PARSER;
        }

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

        @java.lang.Override
        public monitoring.Monitoring.AlarmSubscription getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    }

    public interface AlarmResponseOrBuilder extends // @@protoc_insertion_point(interface_extends:monitoring.AlarmResponse)
    com.google.protobuf.MessageOrBuilder {

        /**
         * <code>.monitoring.AlarmID alarm_id = 1;</code>
         * @return Whether the alarmId field is set.
         */
        boolean hasAlarmId();

        /**
         * <code>.monitoring.AlarmID alarm_id = 1;</code>
         * @return The alarmId.
         */
        monitoring.Monitoring.AlarmID getAlarmId();

        /**
         * <code>.monitoring.AlarmID alarm_id = 1;</code>
         */
        monitoring.Monitoring.AlarmIDOrBuilder getAlarmIdOrBuilder();

        /**
         * <code>string text = 2;</code>
         * @return The text.
         */
        java.lang.String getText();

        /**
         * <code>string text = 2;</code>
         * @return The bytes for text.
         */
        com.google.protobuf.ByteString getTextBytes();

        /**
         * <code>.monitoring.KpiList kpi_list = 3;</code>
         * @return Whether the kpiList field is set.
         */
        boolean hasKpiList();

        /**
         * <code>.monitoring.KpiList kpi_list = 3;</code>
         * @return The kpiList.
         */
        monitoring.Monitoring.KpiList getKpiList();

        /**
         * <code>.monitoring.KpiList kpi_list = 3;</code>
         */
        monitoring.Monitoring.KpiListOrBuilder getKpiListOrBuilder();
    }

    /**
     * Protobuf type {@code monitoring.AlarmResponse}
     */
    public static final class AlarmResponse extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:monitoring.AlarmResponse)
    AlarmResponseOrBuilder {

        private static final long serialVersionUID = 0L;

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

        private AlarmResponse() {
            text_ = "";
        }

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

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return monitoring.Monitoring.internal_static_monitoring_AlarmResponse_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            return monitoring.Monitoring.internal_static_monitoring_AlarmResponse_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.AlarmResponse.class, monitoring.Monitoring.AlarmResponse.Builder.class);
        }

        public static final int ALARM_ID_FIELD_NUMBER = 1;

        private monitoring.Monitoring.AlarmID alarmId_;

        /**
         * <code>.monitoring.AlarmID alarm_id = 1;</code>
         * @return Whether the alarmId field is set.
         */
        @java.lang.Override
        public boolean hasAlarmId() {
            return alarmId_ != null;
        }

        /**
         * <code>.monitoring.AlarmID alarm_id = 1;</code>
         * @return The alarmId.
         */
        @java.lang.Override
        public monitoring.Monitoring.AlarmID getAlarmId() {
            return alarmId_ == null ? monitoring.Monitoring.AlarmID.getDefaultInstance() : alarmId_;
        }

        /**
         * <code>.monitoring.AlarmID alarm_id = 1;</code>
         */
        @java.lang.Override
        public monitoring.Monitoring.AlarmIDOrBuilder getAlarmIdOrBuilder() {
            return alarmId_ == null ? monitoring.Monitoring.AlarmID.getDefaultInstance() : alarmId_;
        }

        public static final int TEXT_FIELD_NUMBER = 2;

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

        /**
         * <code>string text = 2;</code>
         * @return The text.
         */
        @java.lang.Override
        public java.lang.String getText() {
            java.lang.Object ref = text_;
            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();
                text_ = s;
                return s;
            }
        }

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

        public static final int KPI_LIST_FIELD_NUMBER = 3;

        private monitoring.Monitoring.KpiList kpiList_;

        /**
         * <code>.monitoring.KpiList kpi_list = 3;</code>
         * @return Whether the kpiList field is set.
         */
        @java.lang.Override
        public boolean hasKpiList() {
            return kpiList_ != null;
        }

        /**
         * <code>.monitoring.KpiList kpi_list = 3;</code>
         * @return The kpiList.
         */
        @java.lang.Override
        public monitoring.Monitoring.KpiList getKpiList() {
            return kpiList_ == null ? monitoring.Monitoring.KpiList.getDefaultInstance() : kpiList_;
        }

        /**
         * <code>.monitoring.KpiList kpi_list = 3;</code>
         */
        @java.lang.Override
        public monitoring.Monitoring.KpiListOrBuilder getKpiListOrBuilder() {
            return kpiList_ == null ? monitoring.Monitoring.KpiList.getDefaultInstance() : kpiList_;
        }

        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 (alarmId_ != null) {
                output.writeMessage(1, getAlarmId());
            }
            if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(text_)) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 2, text_);
            }
            if (kpiList_ != null) {
                output.writeMessage(3, getKpiList());
            }
            getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;
            size = 0;
            if (alarmId_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getAlarmId());
            }
            if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(text_)) {
                size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, text_);
            }
            if (kpiList_ != null) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getKpiList());
            }
            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 monitoring.Monitoring.AlarmResponse)) {
                return super.equals(obj);
            }
            monitoring.Monitoring.AlarmResponse other = (monitoring.Monitoring.AlarmResponse) obj;
            if (hasAlarmId() != other.hasAlarmId())
                return false;
            if (hasAlarmId()) {
                if (!getAlarmId().equals(other.getAlarmId()))
                    return false;
            }
            if (!getText().equals(other.getText()))
                return false;
            if (hasKpiList() != other.hasKpiList())
                return false;
            if (hasKpiList()) {
                if (!getKpiList().equals(other.getKpiList()))
                    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();
            if (hasAlarmId()) {
                hash = (37 * hash) + ALARM_ID_FIELD_NUMBER;
                hash = (53 * hash) + getAlarmId().hashCode();
            }
            hash = (37 * hash) + TEXT_FIELD_NUMBER;
            hash = (53 * hash) + getText().hashCode();
            if (hasKpiList()) {
                hash = (37 * hash) + KPI_LIST_FIELD_NUMBER;
                hash = (53 * hash) + getKpiList().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static monitoring.Monitoring.AlarmResponse parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.AlarmResponse parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.AlarmResponse parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.AlarmResponse parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.AlarmResponse parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.AlarmResponse parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.AlarmResponse parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.AlarmResponse 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 monitoring.Monitoring.AlarmResponse parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.AlarmResponse 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 monitoring.Monitoring.AlarmResponse parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.AlarmResponse 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(monitoring.Monitoring.AlarmResponse 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;
        }

        /**
         * Protobuf type {@code monitoring.AlarmResponse}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:monitoring.AlarmResponse)
        monitoring.Monitoring.AlarmResponseOrBuilder {

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return monitoring.Monitoring.internal_static_monitoring_AlarmResponse_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
                return monitoring.Monitoring.internal_static_monitoring_AlarmResponse_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.AlarmResponse.class, monitoring.Monitoring.AlarmResponse.Builder.class);
            }

            // Construct using monitoring.Monitoring.AlarmResponse.newBuilder()
            private Builder() {
            }

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

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                alarmId_ = null;
                if (alarmIdBuilder_ != null) {
                    alarmIdBuilder_.dispose();
                    alarmIdBuilder_ = null;
                }
                text_ = "";
                kpiList_ = null;
                if (kpiListBuilder_ != null) {
                    kpiListBuilder_.dispose();
                    kpiListBuilder_ = null;
                }
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return monitoring.Monitoring.internal_static_monitoring_AlarmResponse_descriptor;
            }

            @java.lang.Override
            public monitoring.Monitoring.AlarmResponse getDefaultInstanceForType() {
                return monitoring.Monitoring.AlarmResponse.getDefaultInstance();
            }

            @java.lang.Override
            public monitoring.Monitoring.AlarmResponse build() {
                monitoring.Monitoring.AlarmResponse result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public monitoring.Monitoring.AlarmResponse buildPartial() {
                monitoring.Monitoring.AlarmResponse result = new monitoring.Monitoring.AlarmResponse(this);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                }
                onBuilt();
                return result;
            }

            private void buildPartial0(monitoring.Monitoring.AlarmResponse result) {
                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    result.alarmId_ = alarmIdBuilder_ == null ? alarmId_ : alarmIdBuilder_.build();
                }
                if (((from_bitField0_ & 0x00000002) != 0)) {
                    result.text_ = text_;
                }
                if (((from_bitField0_ & 0x00000004) != 0)) {
                    result.kpiList_ = kpiListBuilder_ == null ? kpiList_ : kpiListBuilder_.build();
                }
            }

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

            public Builder mergeFrom(monitoring.Monitoring.AlarmResponse other) {
                if (other == monitoring.Monitoring.AlarmResponse.getDefaultInstance())
                    return this;
                if (other.hasAlarmId()) {
                    mergeAlarmId(other.getAlarmId());
                }
                if (!other.getText().isEmpty()) {
                    text_ = other.text_;
                    bitField0_ |= 0x00000002;
                    onChanged();
                }
                if (other.hasKpiList()) {
                    mergeKpiList(other.getKpiList());
                }
                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:
                                {
                                    input.readMessage(getAlarmIdFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000001;
                                    break;
                                }
                            // case 10
                            case 18:
                                {
                                    text_ = input.readStringRequireUtf8();
                                    bitField0_ |= 0x00000002;
                                    break;
                                }
                            // case 18
                            case 26:
                                {
                                    input.readMessage(getKpiListFieldBuilder().getBuilder(), extensionRegistry);
                                    bitField0_ |= 0x00000004;
                                    break;
                                }
                            // case 26
                            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 monitoring.Monitoring.AlarmID alarmId_;

            private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.AlarmID, monitoring.Monitoring.AlarmID.Builder, monitoring.Monitoring.AlarmIDOrBuilder> alarmIdBuilder_;

            /**
             * <code>.monitoring.AlarmID alarm_id = 1;</code>
             * @return Whether the alarmId field is set.
             */
            public boolean hasAlarmId() {
                return ((bitField0_ & 0x00000001) != 0);
            }

            /**
             * <code>.monitoring.AlarmID alarm_id = 1;</code>
             * @return The alarmId.
             */
            public monitoring.Monitoring.AlarmID getAlarmId() {
                if (alarmIdBuilder_ == null) {
                    return alarmId_ == null ? monitoring.Monitoring.AlarmID.getDefaultInstance() : alarmId_;
                } else {
                    return alarmIdBuilder_.getMessage();
                }
            }

            /**
             * <code>.monitoring.AlarmID alarm_id = 1;</code>
             */
            public Builder setAlarmId(monitoring.Monitoring.AlarmID value) {
                if (alarmIdBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    alarmId_ = value;
                } else {
                    alarmIdBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.AlarmID alarm_id = 1;</code>
             */
            public Builder setAlarmId(monitoring.Monitoring.AlarmID.Builder builderForValue) {
                if (alarmIdBuilder_ == null) {
                    alarmId_ = builderForValue.build();
                } else {
                    alarmIdBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.AlarmID alarm_id = 1;</code>
             */
            public Builder mergeAlarmId(monitoring.Monitoring.AlarmID value) {
                if (alarmIdBuilder_ == null) {
                    if (((bitField0_ & 0x00000001) != 0) && alarmId_ != null && alarmId_ != monitoring.Monitoring.AlarmID.getDefaultInstance()) {
                        getAlarmIdBuilder().mergeFrom(value);
                    } else {
                        alarmId_ = value;
                    }
                } else {
                    alarmIdBuilder_.mergeFrom(value);
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.AlarmID alarm_id = 1;</code>
             */
            public Builder clearAlarmId() {
                bitField0_ = (bitField0_ & ~0x00000001);
                alarmId_ = null;
                if (alarmIdBuilder_ != null) {
                    alarmIdBuilder_.dispose();
                    alarmIdBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.AlarmID alarm_id = 1;</code>
             */
            public monitoring.Monitoring.AlarmID.Builder getAlarmIdBuilder() {
                bitField0_ |= 0x00000001;
                onChanged();
                return getAlarmIdFieldBuilder().getBuilder();
            }

            /**
             * <code>.monitoring.AlarmID alarm_id = 1;</code>
             */
            public monitoring.Monitoring.AlarmIDOrBuilder getAlarmIdOrBuilder() {
                if (alarmIdBuilder_ != null) {
                    return alarmIdBuilder_.getMessageOrBuilder();
                } else {
                    return alarmId_ == null ? monitoring.Monitoring.AlarmID.getDefaultInstance() : alarmId_;
                }
            }

            /**
             * <code>.monitoring.AlarmID alarm_id = 1;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.AlarmID, monitoring.Monitoring.AlarmID.Builder, monitoring.Monitoring.AlarmIDOrBuilder> getAlarmIdFieldBuilder() {
                if (alarmIdBuilder_ == null) {
                    alarmIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.AlarmID, monitoring.Monitoring.AlarmID.Builder, monitoring.Monitoring.AlarmIDOrBuilder>(getAlarmId(), getParentForChildren(), isClean());
                    alarmId_ = null;
                }
                return alarmIdBuilder_;
            }

            private java.lang.Object text_ = "";

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

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

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

            /**
             * <code>string text = 2;</code>
             * @return This builder for chaining.
             */
            public Builder clearText() {
                text_ = getDefaultInstance().getText();
                bitField0_ = (bitField0_ & ~0x00000002);
                onChanged();
                return this;
            }

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

            private monitoring.Monitoring.KpiList kpiList_;

            private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiList, monitoring.Monitoring.KpiList.Builder, monitoring.Monitoring.KpiListOrBuilder> kpiListBuilder_;

            /**
             * <code>.monitoring.KpiList kpi_list = 3;</code>
             * @return Whether the kpiList field is set.
             */
            public boolean hasKpiList() {
                return ((bitField0_ & 0x00000004) != 0);
            }

            /**
             * <code>.monitoring.KpiList kpi_list = 3;</code>
             * @return The kpiList.
             */
            public monitoring.Monitoring.KpiList getKpiList() {
                if (kpiListBuilder_ == null) {
                    return kpiList_ == null ? monitoring.Monitoring.KpiList.getDefaultInstance() : kpiList_;
                } else {
                    return kpiListBuilder_.getMessage();
                }
            }

            /**
             * <code>.monitoring.KpiList kpi_list = 3;</code>
             */
            public Builder setKpiList(monitoring.Monitoring.KpiList value) {
                if (kpiListBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    kpiList_ = value;
                } else {
                    kpiListBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000004;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiList kpi_list = 3;</code>
             */
            public Builder setKpiList(monitoring.Monitoring.KpiList.Builder builderForValue) {
                if (kpiListBuilder_ == null) {
                    kpiList_ = builderForValue.build();
                } else {
                    kpiListBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000004;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiList kpi_list = 3;</code>
             */
            public Builder mergeKpiList(monitoring.Monitoring.KpiList value) {
                if (kpiListBuilder_ == null) {
                    if (((bitField0_ & 0x00000004) != 0) && kpiList_ != null && kpiList_ != monitoring.Monitoring.KpiList.getDefaultInstance()) {
                        getKpiListBuilder().mergeFrom(value);
                    } else {
                        kpiList_ = value;
                    }
                } else {
                    kpiListBuilder_.mergeFrom(value);
                }
                bitField0_ |= 0x00000004;
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiList kpi_list = 3;</code>
             */
            public Builder clearKpiList() {
                bitField0_ = (bitField0_ & ~0x00000004);
                kpiList_ = null;
                if (kpiListBuilder_ != null) {
                    kpiListBuilder_.dispose();
                    kpiListBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <code>.monitoring.KpiList kpi_list = 3;</code>
             */
            public monitoring.Monitoring.KpiList.Builder getKpiListBuilder() {
                bitField0_ |= 0x00000004;
                onChanged();
                return getKpiListFieldBuilder().getBuilder();
            }

            /**
             * <code>.monitoring.KpiList kpi_list = 3;</code>
             */
            public monitoring.Monitoring.KpiListOrBuilder getKpiListOrBuilder() {
                if (kpiListBuilder_ != null) {
                    return kpiListBuilder_.getMessageOrBuilder();
                } else {
                    return kpiList_ == null ? monitoring.Monitoring.KpiList.getDefaultInstance() : kpiList_;
                }
            }

            /**
             * <code>.monitoring.KpiList kpi_list = 3;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiList, monitoring.Monitoring.KpiList.Builder, monitoring.Monitoring.KpiListOrBuilder> getKpiListFieldBuilder() {
                if (kpiListBuilder_ == null) {
                    kpiListBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiList, monitoring.Monitoring.KpiList.Builder, monitoring.Monitoring.KpiListOrBuilder>(getKpiList(), getParentForChildren(), isClean());
                    kpiList_ = null;
                }
                return kpiListBuilder_;
            }

            @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:monitoring.AlarmResponse)
        }

        // @@protoc_insertion_point(class_scope:monitoring.AlarmResponse)
        private static final monitoring.Monitoring.AlarmResponse DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new monitoring.Monitoring.AlarmResponse();
        }

        public static monitoring.Monitoring.AlarmResponse getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

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

            @java.lang.Override
            public AlarmResponse 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<AlarmResponse> parser() {
            return PARSER;
        }

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

        @java.lang.Override
        public monitoring.Monitoring.AlarmResponse getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    }

    public interface AlarmListOrBuilder extends // @@protoc_insertion_point(interface_extends:monitoring.AlarmList)
    com.google.protobuf.MessageOrBuilder {

        /**
         * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code>
         */
        java.util.List<monitoring.Monitoring.AlarmDescriptor> getAlarmDescriptorList();

        /**
         * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code>
         */
        monitoring.Monitoring.AlarmDescriptor getAlarmDescriptor(int index);

        /**
         * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code>
         */
        int getAlarmDescriptorCount();

        /**
         * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code>
         */
        java.util.List<? extends monitoring.Monitoring.AlarmDescriptorOrBuilder> getAlarmDescriptorOrBuilderList();

        /**
         * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code>
         */
        monitoring.Monitoring.AlarmDescriptorOrBuilder getAlarmDescriptorOrBuilder(int index);
    }

    /**
     * Protobuf type {@code monitoring.AlarmList}
     */
    public static final class AlarmList extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:monitoring.AlarmList)
    AlarmListOrBuilder {

        private static final long serialVersionUID = 0L;

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

        private AlarmList() {
            alarmDescriptor_ = java.util.Collections.emptyList();
        }

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

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return monitoring.Monitoring.internal_static_monitoring_AlarmList_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            return monitoring.Monitoring.internal_static_monitoring_AlarmList_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.AlarmList.class, monitoring.Monitoring.AlarmList.Builder.class);
        }

        public static final int ALARM_DESCRIPTOR_FIELD_NUMBER = 1;

        @SuppressWarnings("serial")
        private java.util.List<monitoring.Monitoring.AlarmDescriptor> alarmDescriptor_;

        /**
         * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code>
         */
        @java.lang.Override
        public java.util.List<monitoring.Monitoring.AlarmDescriptor> getAlarmDescriptorList() {
            return alarmDescriptor_;
        }

        /**
         * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code>
         */
        @java.lang.Override
        public java.util.List<? extends monitoring.Monitoring.AlarmDescriptorOrBuilder> getAlarmDescriptorOrBuilderList() {
            return alarmDescriptor_;
        }

        /**
         * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code>
         */
        @java.lang.Override
        public int getAlarmDescriptorCount() {
            return alarmDescriptor_.size();
        }

        /**
         * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code>
         */
        @java.lang.Override
        public monitoring.Monitoring.AlarmDescriptor getAlarmDescriptor(int index) {
            return alarmDescriptor_.get(index);
        }

        /**
         * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code>
         */
        @java.lang.Override
        public monitoring.Monitoring.AlarmDescriptorOrBuilder getAlarmDescriptorOrBuilder(int index) {
            return alarmDescriptor_.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 {
            for (int i = 0; i < alarmDescriptor_.size(); i++) {
                output.writeMessage(1, alarmDescriptor_.get(i));
            }
            getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;
            size = 0;
            for (int i = 0; i < alarmDescriptor_.size(); i++) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, alarmDescriptor_.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 monitoring.Monitoring.AlarmList)) {
                return super.equals(obj);
            }
            monitoring.Monitoring.AlarmList other = (monitoring.Monitoring.AlarmList) obj;
            if (!getAlarmDescriptorList().equals(other.getAlarmDescriptorList()))
                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();
            if (getAlarmDescriptorCount() > 0) {
                hash = (37 * hash) + ALARM_DESCRIPTOR_FIELD_NUMBER;
                hash = (53 * hash) + getAlarmDescriptorList().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static monitoring.Monitoring.AlarmList parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.AlarmList parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.AlarmList parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.AlarmList parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.AlarmList parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static monitoring.Monitoring.AlarmList parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static monitoring.Monitoring.AlarmList parseFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.AlarmList 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 monitoring.Monitoring.AlarmList parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.AlarmList 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 monitoring.Monitoring.AlarmList parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static monitoring.Monitoring.AlarmList 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(monitoring.Monitoring.AlarmList 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;
        }

        /**
         * Protobuf type {@code monitoring.AlarmList}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:monitoring.AlarmList)
        monitoring.Monitoring.AlarmListOrBuilder {

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
                return monitoring.Monitoring.internal_static_monitoring_AlarmList_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
                return monitoring.Monitoring.internal_static_monitoring_AlarmList_fieldAccessorTable.ensureFieldAccessorsInitialized(monitoring.Monitoring.AlarmList.class, monitoring.Monitoring.AlarmList.Builder.class);
            }

            // Construct using monitoring.Monitoring.AlarmList.newBuilder()
            private Builder() {
            }

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

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                if (alarmDescriptorBuilder_ == null) {
                    alarmDescriptor_ = java.util.Collections.emptyList();
                } else {
                    alarmDescriptor_ = null;
                    alarmDescriptorBuilder_.clear();
                }
                bitField0_ = (bitField0_ & ~0x00000001);
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
                return monitoring.Monitoring.internal_static_monitoring_AlarmList_descriptor;
            }

            @java.lang.Override
            public monitoring.Monitoring.AlarmList getDefaultInstanceForType() {
                return monitoring.Monitoring.AlarmList.getDefaultInstance();
            }

            @java.lang.Override
            public monitoring.Monitoring.AlarmList build() {
                monitoring.Monitoring.AlarmList result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

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

            private void buildPartialRepeatedFields(monitoring.Monitoring.AlarmList result) {
                if (alarmDescriptorBuilder_ == null) {
                    if (((bitField0_ & 0x00000001) != 0)) {
                        alarmDescriptor_ = java.util.Collections.unmodifiableList(alarmDescriptor_);
                        bitField0_ = (bitField0_ & ~0x00000001);
                    }
                    result.alarmDescriptor_ = alarmDescriptor_;
                } else {
                    result.alarmDescriptor_ = alarmDescriptorBuilder_.build();
                }
            }

            private void buildPartial0(monitoring.Monitoring.AlarmList result) {
                int from_bitField0_ = bitField0_;
            }

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

            public Builder mergeFrom(monitoring.Monitoring.AlarmList other) {
                if (other == monitoring.Monitoring.AlarmList.getDefaultInstance())
                    return this;
                if (alarmDescriptorBuilder_ == null) {
                    if (!other.alarmDescriptor_.isEmpty()) {
                        if (alarmDescriptor_.isEmpty()) {
                            alarmDescriptor_ = other.alarmDescriptor_;
                            bitField0_ = (bitField0_ & ~0x00000001);
                        } else {
                            ensureAlarmDescriptorIsMutable();
                            alarmDescriptor_.addAll(other.alarmDescriptor_);
                        }
                        onChanged();
                    }
                } else {
                    if (!other.alarmDescriptor_.isEmpty()) {
                        if (alarmDescriptorBuilder_.isEmpty()) {
                            alarmDescriptorBuilder_.dispose();
                            alarmDescriptorBuilder_ = null;
                            alarmDescriptor_ = other.alarmDescriptor_;
                            bitField0_ = (bitField0_ & ~0x00000001);
                            alarmDescriptorBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getAlarmDescriptorFieldBuilder() : null;
                        } else {
                            alarmDescriptorBuilder_.addAllMessages(other.alarmDescriptor_);
                        }
                    }
                }
                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:
                                {
                                    monitoring.Monitoring.AlarmDescriptor m = input.readMessage(monitoring.Monitoring.AlarmDescriptor.parser(), extensionRegistry);
                                    if (alarmDescriptorBuilder_ == null) {
                                        ensureAlarmDescriptorIsMutable();
                                        alarmDescriptor_.add(m);
                                    } else {
                                        alarmDescriptorBuilder_.addMessage(m);
                                    }
                                    break;
                                }
                            // case 10
                            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.util.List<monitoring.Monitoring.AlarmDescriptor> alarmDescriptor_ = java.util.Collections.emptyList();

            private void ensureAlarmDescriptorIsMutable() {
                if (!((bitField0_ & 0x00000001) != 0)) {
                    alarmDescriptor_ = new java.util.ArrayList<monitoring.Monitoring.AlarmDescriptor>(alarmDescriptor_);
                    bitField0_ |= 0x00000001;
                }
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<monitoring.Monitoring.AlarmDescriptor, monitoring.Monitoring.AlarmDescriptor.Builder, monitoring.Monitoring.AlarmDescriptorOrBuilder> alarmDescriptorBuilder_;

            /**
             * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code>
             */
            public java.util.List<monitoring.Monitoring.AlarmDescriptor> getAlarmDescriptorList() {
                if (alarmDescriptorBuilder_ == null) {
                    return java.util.Collections.unmodifiableList(alarmDescriptor_);
                } else {
                    return alarmDescriptorBuilder_.getMessageList();
                }
            }

            /**
             * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code>
             */
            public int getAlarmDescriptorCount() {
                if (alarmDescriptorBuilder_ == null) {
                    return alarmDescriptor_.size();
                } else {
                    return alarmDescriptorBuilder_.getCount();
                }
            }

            /**
             * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code>
             */
            public monitoring.Monitoring.AlarmDescriptor getAlarmDescriptor(int index) {
                if (alarmDescriptorBuilder_ == null) {
                    return alarmDescriptor_.get(index);
                } else {
                    return alarmDescriptorBuilder_.getMessage(index);
                }
            }

            /**
             * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code>
             */
            public Builder setAlarmDescriptor(int index, monitoring.Monitoring.AlarmDescriptor value) {
                if (alarmDescriptorBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureAlarmDescriptorIsMutable();
                    alarmDescriptor_.set(index, value);
                    onChanged();
                } else {
                    alarmDescriptorBuilder_.setMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code>
             */
            public Builder setAlarmDescriptor(int index, monitoring.Monitoring.AlarmDescriptor.Builder builderForValue) {
                if (alarmDescriptorBuilder_ == null) {
                    ensureAlarmDescriptorIsMutable();
                    alarmDescriptor_.set(index, builderForValue.build());
                    onChanged();
                } else {
                    alarmDescriptorBuilder_.setMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code>
             */
            public Builder addAlarmDescriptor(monitoring.Monitoring.AlarmDescriptor value) {
                if (alarmDescriptorBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureAlarmDescriptorIsMutable();
                    alarmDescriptor_.add(value);
                    onChanged();
                } else {
                    alarmDescriptorBuilder_.addMessage(value);
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code>
             */
            public Builder addAlarmDescriptor(int index, monitoring.Monitoring.AlarmDescriptor value) {
                if (alarmDescriptorBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureAlarmDescriptorIsMutable();
                    alarmDescriptor_.add(index, value);
                    onChanged();
                } else {
                    alarmDescriptorBuilder_.addMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code>
             */
            public Builder addAlarmDescriptor(monitoring.Monitoring.AlarmDescriptor.Builder builderForValue) {
                if (alarmDescriptorBuilder_ == null) {
                    ensureAlarmDescriptorIsMutable();
                    alarmDescriptor_.add(builderForValue.build());
                    onChanged();
                } else {
                    alarmDescriptorBuilder_.addMessage(builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code>
             */
            public Builder addAlarmDescriptor(int index, monitoring.Monitoring.AlarmDescriptor.Builder builderForValue) {
                if (alarmDescriptorBuilder_ == null) {
                    ensureAlarmDescriptorIsMutable();
                    alarmDescriptor_.add(index, builderForValue.build());
                    onChanged();
                } else {
                    alarmDescriptorBuilder_.addMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code>
             */
            public Builder addAllAlarmDescriptor(java.lang.Iterable<? extends monitoring.Monitoring.AlarmDescriptor> values) {
                if (alarmDescriptorBuilder_ == null) {
                    ensureAlarmDescriptorIsMutable();
                    com.google.protobuf.AbstractMessageLite.Builder.addAll(values, alarmDescriptor_);
                    onChanged();
                } else {
                    alarmDescriptorBuilder_.addAllMessages(values);
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code>
             */
            public Builder clearAlarmDescriptor() {
                if (alarmDescriptorBuilder_ == null) {
                    alarmDescriptor_ = java.util.Collections.emptyList();
                    bitField0_ = (bitField0_ & ~0x00000001);
                    onChanged();
                } else {
                    alarmDescriptorBuilder_.clear();
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code>
             */
            public Builder removeAlarmDescriptor(int index) {
                if (alarmDescriptorBuilder_ == null) {
                    ensureAlarmDescriptorIsMutable();
                    alarmDescriptor_.remove(index);
                    onChanged();
                } else {
                    alarmDescriptorBuilder_.remove(index);
                }
                return this;
            }

            /**
             * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code>
             */
            public monitoring.Monitoring.AlarmDescriptor.Builder getAlarmDescriptorBuilder(int index) {
                return getAlarmDescriptorFieldBuilder().getBuilder(index);
            }

            /**
             * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code>
             */
            public monitoring.Monitoring.AlarmDescriptorOrBuilder getAlarmDescriptorOrBuilder(int index) {
                if (alarmDescriptorBuilder_ == null) {
                    return alarmDescriptor_.get(index);
                } else {
                    return alarmDescriptorBuilder_.getMessageOrBuilder(index);
                }
            }

            /**
             * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code>
             */
            public java.util.List<? extends monitoring.Monitoring.AlarmDescriptorOrBuilder> getAlarmDescriptorOrBuilderList() {
                if (alarmDescriptorBuilder_ != null) {
                    return alarmDescriptorBuilder_.getMessageOrBuilderList();
                } else {
                    return java.util.Collections.unmodifiableList(alarmDescriptor_);
                }
            }

            /**
             * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code>
             */
            public monitoring.Monitoring.AlarmDescriptor.Builder addAlarmDescriptorBuilder() {
                return getAlarmDescriptorFieldBuilder().addBuilder(monitoring.Monitoring.AlarmDescriptor.getDefaultInstance());
            }

            /**
             * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code>
             */
            public monitoring.Monitoring.AlarmDescriptor.Builder addAlarmDescriptorBuilder(int index) {
                return getAlarmDescriptorFieldBuilder().addBuilder(index, monitoring.Monitoring.AlarmDescriptor.getDefaultInstance());
            }

            /**
             * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code>
             */
            public java.util.List<monitoring.Monitoring.AlarmDescriptor.Builder> getAlarmDescriptorBuilderList() {
                return getAlarmDescriptorFieldBuilder().getBuilderList();
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<monitoring.Monitoring.AlarmDescriptor, monitoring.Monitoring.AlarmDescriptor.Builder, monitoring.Monitoring.AlarmDescriptorOrBuilder> getAlarmDescriptorFieldBuilder() {
                if (alarmDescriptorBuilder_ == null) {
                    alarmDescriptorBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<monitoring.Monitoring.AlarmDescriptor, monitoring.Monitoring.AlarmDescriptor.Builder, monitoring.Monitoring.AlarmDescriptorOrBuilder>(alarmDescriptor_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean());
                    alarmDescriptor_ = null;
                }
                return alarmDescriptorBuilder_;
            }

            @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:monitoring.AlarmList)
        }

        // @@protoc_insertion_point(class_scope:monitoring.AlarmList)
        private static final monitoring.Monitoring.AlarmList DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new monitoring.Monitoring.AlarmList();
        }

        public static monitoring.Monitoring.AlarmList getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

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

            @java.lang.Override
            public AlarmList 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<AlarmList> parser() {
            return PARSER;
        }

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

        @java.lang.Override
        public monitoring.Monitoring.AlarmList getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_monitoring_AlarmList_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\020monitoring.proto\022\nmonitoring\032\rcontext." + "proto\032\026kpi_sample_types.proto\"\231\003\n\rKpiDes" + "criptor\022!\n\006kpi_id\030\001 \001(\0132\021.monitoring.Kpi" + "Id\022\027\n\017kpi_description\030\002 \001(\t\022&\n\013kpi_id_li" + "st\030\003 \003(\0132\021.monitoring.KpiId\0228\n\017kpi_sampl" + "e_type\030\004 \001(\0162\037.kpi_sample_types.KpiSampl" + "eType\022$\n\tdevice_id\030\005 \001(\0132\021.context.Devic" + "eId\022(\n\013endpoint_id\030\006 \001(\0132\023.context.EndPo" + "intId\022&\n\nservice_id\030\007 \001(\0132\022.context.Serv" + "iceId\022\"\n\010slice_id\030\010 \001(\0132\020.context.SliceI" + "d\022,\n\rconnection_id\030\t \001(\0132\025.context.Conne" + "ctionId\022 \n\007link_id\030\n \001(\0132\017.context.LinkI" + "d\"l\n\021MonitorKpiRequest\022!\n\006kpi_id\030\001 \001(\0132\021" + ".monitoring.KpiId\022\033\n\023monitoring_window_s" + "\030\002 \001(\002\022\027\n\017sampling_rate_s\030\003 \001(\002\"\273\001\n\010KpiQ" + "uery\022\"\n\007kpi_ids\030\001 \003(\0132\021.monitoring.KpiId" + "\022\033\n\023monitoring_window_s\030\002 \001(\002\022\026\n\016last_n_" + "samples\030\003 \001(\r\022+\n\017start_timestamp\030\004 \001(\0132\022" + ".context.Timestamp\022)\n\rend_timestamp\030\005 \001(" + "\0132\022.context.Timestamp\"X\n\006RawKpi\022%\n\ttimes" + "tamp\030\001 \001(\0132\022.context.Timestamp\022\'\n\tkpi_va" + "lue\030\002 \001(\0132\024.monitoring.KpiValue\"U\n\nRawKp" + "iList\022!\n\006kpi_id\030\001 \001(\0132\021.monitoring.KpiId" + "\022$\n\010raw_kpis\030\002 \003(\0132\022.monitoring.RawKpi\"<" + "\n\013RawKpiTable\022-\n\rraw_kpi_lists\030\001 \003(\0132\026.m" + "onitoring.RawKpiList\"&\n\005KpiId\022\035\n\006kpi_id\030" + "\001 \001(\0132\r.context.Uuid\"x\n\003Kpi\022!\n\006kpi_id\030\001 " + "\001(\0132\021.monitoring.KpiId\022%\n\ttimestamp\030\002 \001(" + "\0132\022.context.Timestamp\022\'\n\tkpi_value\030\003 \001(\013" + "2\024.monitoring.KpiValue\"\250\001\n\rKpiValueRange" + "\022)\n\013kpiMinValue\030\001 \001(\0132\024.monitoring.KpiVa" + "lue\022)\n\013kpiMaxValue\030\002 \001(\0132\024.monitoring.Kp" + "iValue\022\017\n\007inRange\030\003 \001(\010\022\027\n\017includeMinVal" + "ue\030\004 \001(\010\022\027\n\017includeMaxValue\030\005 \001(\010\"\241\001\n\010Kp" + "iValue\022\022\n\010int32Val\030\001 \001(\005H\000\022\023\n\tuint32Val\030" + "\002 \001(\rH\000\022\022\n\010int64Val\030\003 \001(\003H\000\022\023\n\tuint64Val" + "\030\004 \001(\004H\000\022\022\n\010floatVal\030\005 \001(\002H\000\022\023\n\tstringVa" + "l\030\006 \001(\tH\000\022\021\n\007boolVal\030\007 \001(\010H\000B\007\n\005value\"\'\n" + "\007KpiList\022\034\n\003kpi\030\001 \003(\0132\017.monitoring.Kpi\"K" + "\n\021KpiDescriptorList\0226\n\023kpi_descriptor_li" + "st\030\001 \003(\0132\031.monitoring.KpiDescriptor\"\362\001\n\016" + "SubsDescriptor\022+\n\007subs_id\030\001 \001(\0132\032.monito" + "ring.SubscriptionID\022!\n\006kpi_id\030\002 \001(\0132\021.mo" + "nitoring.KpiId\022\033\n\023sampling_duration_s\030\003 " + "\001(\002\022\033\n\023sampling_interval_s\030\004 \001(\002\022+\n\017star" + "t_timestamp\030\005 \001(\0132\022.context.Timestamp\022)\n" + "\rend_timestamp\030\006 \001(\0132\022.context.Timestamp" + "\"0\n\016SubscriptionID\022\036\n\007subs_id\030\001 \001(\0132\r.co" + "ntext.Uuid\"b\n\014SubsResponse\022+\n\007subs_id\030\001 " + "\001(\0132\032.monitoring.SubscriptionID\022%\n\010kpi_l" + "ist\030\002 \001(\0132\023.monitoring.KpiList\"?\n\010SubsLi" + "st\0223\n\017subs_descriptor\030\001 \003(\0132\032.monitoring" + ".SubsDescriptor\"\337\001\n\017AlarmDescriptor\022%\n\010a" + "larm_id\030\001 \001(\0132\023.monitoring.AlarmID\022\031\n\021al" + "arm_description\030\002 \001(\t\022\014\n\004name\030\003 \001(\t\022!\n\006k" + "pi_id\030\004 \001(\0132\021.monitoring.KpiId\0222\n\017kpi_va" + "lue_range\030\005 \001(\0132\031.monitoring.KpiValueRan" + "ge\022%\n\ttimestamp\030\006 \001(\0132\022.context.Timestam" + "p\"*\n\007AlarmID\022\037\n\010alarm_id\030\001 \001(\0132\r.context" + ".Uuid\"}\n\021AlarmSubscription\022%\n\010alarm_id\030\001" + " \001(\0132\023.monitoring.AlarmID\022\036\n\026subscriptio" + "n_timeout_s\030\002 \001(\002\022!\n\031subscription_freque" + "ncy_ms\030\003 \001(\002\"k\n\rAlarmResponse\022%\n\010alarm_i" + "d\030\001 \001(\0132\023.monitoring.AlarmID\022\014\n\004text\030\002 \001" + "(\t\022%\n\010kpi_list\030\003 \001(\0132\023.monitoring.KpiLis" + "t\"B\n\tAlarmList\0225\n\020alarm_descriptor\030\001 \003(\013" + "2\033.monitoring.AlarmDescriptor2\234\t\n\021Monito" + "ringService\0228\n\006SetKpi\022\031.monitoring.KpiDe" + "scriptor\032\021.monitoring.KpiId\"\000\0220\n\tDeleteK" + "pi\022\021.monitoring.KpiId\032\016.context.Empty\"\000\022" + "B\n\020GetKpiDescriptor\022\021.monitoring.KpiId\032\031" + ".monitoring.KpiDescriptor\"\000\022G\n\024GetKpiDes" + "criptorList\022\016.context.Empty\032\035.monitoring" + ".KpiDescriptorList\"\000\022/\n\nIncludeKpi\022\017.mon" + "itoring.Kpi\032\016.context.Empty\"\000\022=\n\nMonitor" + "Kpi\022\035.monitoring.MonitorKpiRequest\032\016.con" + "text.Empty\"\000\022?\n\014QueryKpiData\022\024.monitorin" + "g.KpiQuery\032\027.monitoring.RawKpiTable\"\000\022N\n" + "\022SetKpiSubscription\022\032.monitoring.SubsDes" + "criptor\032\030.monitoring.SubsResponse\"\0000\001\022M\n" + "\021GetSubsDescriptor\022\032.monitoring.Subscrip" + "tionID\032\032.monitoring.SubsDescriptor\"\000\022:\n\020" + "GetSubscriptions\022\016.context.Empty\032\024.monit" + "oring.SubsList\"\000\022B\n\022DeleteSubscription\022\032" + ".monitoring.SubscriptionID\032\016.context.Emp" + "ty\"\000\022A\n\013SetKpiAlarm\022\033.monitoring.AlarmDe" + "scriptor\032\023.monitoring.AlarmID\"\000\0224\n\tGetAl" + "arms\022\016.context.Empty\032\025.monitoring.AlarmL" + "ist\"\000\022H\n\022GetAlarmDescriptor\022\023.monitoring" + ".AlarmID\032\033.monitoring.AlarmDescriptor\"\000\022" + "V\n\026GetAlarmResponseStream\022\035.monitoring.A" + "larmSubscription\032\031.monitoring.AlarmRespo" + "nse\"\0000\001\0224\n\013DeleteAlarm\022\023.monitoring.Alar" + "mID\032\016.context.Empty\"\000\0226\n\014GetStreamKpi\022\021." + "monitoring.KpiId\032\017.monitoring.Kpi\"\0000\001\0225\n" + "\rGetInstantKpi\022\021.monitoring.KpiId\032\017.moni" + "toring.Kpi\"\000b\006proto3" };
        descriptor = com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] { context.ContextOuterClass.getDescriptor(), kpi_sample_types.KpiSampleTypes.getDescriptor() });
        internal_static_monitoring_KpiDescriptor_descriptor = getDescriptor().getMessageTypes().get(0);
        internal_static_monitoring_KpiDescriptor_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_monitoring_KpiDescriptor_descriptor, new java.lang.String[] { "KpiId", "KpiDescription", "KpiIdList", "KpiSampleType", "DeviceId", "EndpointId", "ServiceId", "SliceId", "ConnectionId", "LinkId" });
        internal_static_monitoring_MonitorKpiRequest_descriptor = getDescriptor().getMessageTypes().get(1);
        internal_static_monitoring_MonitorKpiRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_monitoring_MonitorKpiRequest_descriptor, new java.lang.String[] { "KpiId", "MonitoringWindowS", "SamplingRateS" });
        internal_static_monitoring_KpiQuery_descriptor = getDescriptor().getMessageTypes().get(2);
        internal_static_monitoring_KpiQuery_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_monitoring_KpiQuery_descriptor, new java.lang.String[] { "KpiIds", "MonitoringWindowS", "LastNSamples", "StartTimestamp", "EndTimestamp" });
        internal_static_monitoring_RawKpi_descriptor = getDescriptor().getMessageTypes().get(3);
        internal_static_monitoring_RawKpi_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_monitoring_RawKpi_descriptor, new java.lang.String[] { "Timestamp", "KpiValue" });
        internal_static_monitoring_RawKpiList_descriptor = getDescriptor().getMessageTypes().get(4);
        internal_static_monitoring_RawKpiList_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_monitoring_RawKpiList_descriptor, new java.lang.String[] { "KpiId", "RawKpis" });
        internal_static_monitoring_RawKpiTable_descriptor = getDescriptor().getMessageTypes().get(5);
        internal_static_monitoring_RawKpiTable_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_monitoring_RawKpiTable_descriptor, new java.lang.String[] { "RawKpiLists" });
        internal_static_monitoring_KpiId_descriptor = getDescriptor().getMessageTypes().get(6);
        internal_static_monitoring_KpiId_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_monitoring_KpiId_descriptor, new java.lang.String[] { "KpiId" });
        internal_static_monitoring_Kpi_descriptor = getDescriptor().getMessageTypes().get(7);
        internal_static_monitoring_Kpi_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_monitoring_Kpi_descriptor, new java.lang.String[] { "KpiId", "Timestamp", "KpiValue" });
        internal_static_monitoring_KpiValueRange_descriptor = getDescriptor().getMessageTypes().get(8);
        internal_static_monitoring_KpiValueRange_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_monitoring_KpiValueRange_descriptor, new java.lang.String[] { "KpiMinValue", "KpiMaxValue", "InRange", "IncludeMinValue", "IncludeMaxValue" });
        internal_static_monitoring_KpiValue_descriptor = getDescriptor().getMessageTypes().get(9);
        internal_static_monitoring_KpiValue_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_monitoring_KpiValue_descriptor, new java.lang.String[] { "Int32Val", "Uint32Val", "Int64Val", "Uint64Val", "FloatVal", "StringVal", "BoolVal", "Value" });
        internal_static_monitoring_KpiList_descriptor = getDescriptor().getMessageTypes().get(10);
        internal_static_monitoring_KpiList_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_monitoring_KpiList_descriptor, new java.lang.String[] { "Kpi" });
        internal_static_monitoring_KpiDescriptorList_descriptor = getDescriptor().getMessageTypes().get(11);
        internal_static_monitoring_KpiDescriptorList_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_monitoring_KpiDescriptorList_descriptor, new java.lang.String[] { "KpiDescriptorList" });
        internal_static_monitoring_SubsDescriptor_descriptor = getDescriptor().getMessageTypes().get(12);
        internal_static_monitoring_SubsDescriptor_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_monitoring_SubsDescriptor_descriptor, new java.lang.String[] { "SubsId", "KpiId", "SamplingDurationS", "SamplingIntervalS", "StartTimestamp", "EndTimestamp" });
        internal_static_monitoring_SubscriptionID_descriptor = getDescriptor().getMessageTypes().get(13);
        internal_static_monitoring_SubscriptionID_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_monitoring_SubscriptionID_descriptor, new java.lang.String[] { "SubsId" });
        internal_static_monitoring_SubsResponse_descriptor = getDescriptor().getMessageTypes().get(14);
        internal_static_monitoring_SubsResponse_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_monitoring_SubsResponse_descriptor, new java.lang.String[] { "SubsId", "KpiList" });
        internal_static_monitoring_SubsList_descriptor = getDescriptor().getMessageTypes().get(15);
        internal_static_monitoring_SubsList_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_monitoring_SubsList_descriptor, new java.lang.String[] { "SubsDescriptor" });
        internal_static_monitoring_AlarmDescriptor_descriptor = getDescriptor().getMessageTypes().get(16);
        internal_static_monitoring_AlarmDescriptor_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_monitoring_AlarmDescriptor_descriptor, new java.lang.String[] { "AlarmId", "AlarmDescription", "Name", "KpiId", "KpiValueRange", "Timestamp" });
        internal_static_monitoring_AlarmID_descriptor = getDescriptor().getMessageTypes().get(17);
        internal_static_monitoring_AlarmID_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_monitoring_AlarmID_descriptor, new java.lang.String[] { "AlarmId" });
        internal_static_monitoring_AlarmSubscription_descriptor = getDescriptor().getMessageTypes().get(18);
        internal_static_monitoring_AlarmSubscription_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_monitoring_AlarmSubscription_descriptor, new java.lang.String[] { "AlarmId", "SubscriptionTimeoutS", "SubscriptionFrequencyMs" });
        internal_static_monitoring_AlarmResponse_descriptor = getDescriptor().getMessageTypes().get(19);
        internal_static_monitoring_AlarmResponse_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_monitoring_AlarmResponse_descriptor, new java.lang.String[] { "AlarmId", "Text", "KpiList" });
        internal_static_monitoring_AlarmList_descriptor = getDescriptor().getMessageTypes().get(20);
        internal_static_monitoring_AlarmList_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_monitoring_AlarmList_descriptor, new java.lang.String[] { "AlarmDescriptor" });
        context.ContextOuterClass.getDescriptor();
        kpi_sample_types.KpiSampleTypes.getDescriptor();
    }
    // @@protoc_insertion_point(outer_class_scope)
}
