// 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();
  }
  /**
   * 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();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private KpiDescriptor(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              monitoring.Monitoring.KpiId.Builder subBuilder = null;
              if (kpiId_ != null) {
                subBuilder = kpiId_.toBuilder();
              }
              kpiId_ = input.readMessage(monitoring.Monitoring.KpiId.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(kpiId_);
                kpiId_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();

              kpiDescription_ = s;
              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                kpiIdList_ = new java.util.ArrayList<monitoring.Monitoring.KpiId>();
                mutable_bitField0_ |= 0x00000001;
              }
              kpiIdList_.add(
                  input.readMessage(monitoring.Monitoring.KpiId.parser(), extensionRegistry));
              break;
            }
            case 32: {
              int rawValue = input.readEnum();

              kpiSampleType_ = rawValue;
              break;
            }
            case 42: {
              context.ContextOuterClass.DeviceId.Builder subBuilder = null;
              if (deviceId_ != null) {
                subBuilder = deviceId_.toBuilder();
              }
              deviceId_ = input.readMessage(context.ContextOuterClass.DeviceId.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(deviceId_);
                deviceId_ = subBuilder.buildPartial();
              }

              break;
            }
            case 50: {
              context.ContextOuterClass.EndPointId.Builder subBuilder = null;
              if (endpointId_ != null) {
                subBuilder = endpointId_.toBuilder();
              }
              endpointId_ = input.readMessage(context.ContextOuterClass.EndPointId.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(endpointId_);
                endpointId_ = subBuilder.buildPartial();
              }

              break;
            }
            case 58: {
              context.ContextOuterClass.ServiceId.Builder subBuilder = null;
              if (serviceId_ != null) {
                subBuilder = serviceId_.toBuilder();
              }
              serviceId_ = input.readMessage(context.ContextOuterClass.ServiceId.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(serviceId_);
                serviceId_ = subBuilder.buildPartial();
              }

              break;
            }
            case 66: {
              context.ContextOuterClass.SliceId.Builder subBuilder = null;
              if (sliceId_ != null) {
                subBuilder = sliceId_.toBuilder();
              }
              sliceId_ = input.readMessage(context.ContextOuterClass.SliceId.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(sliceId_);
                sliceId_ = subBuilder.buildPartial();
              }

              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          kpiIdList_ = java.util.Collections.unmodifiableList(kpiIdList_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    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 getKpiId();
    }

    public static final int KPI_DESCRIPTION_FIELD_NUMBER = 2;
    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;
    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_;
    /**
     * <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() {
      @SuppressWarnings("deprecation")
      kpi_sample_types.KpiSampleTypes.KpiSampleType result = kpi_sample_types.KpiSampleTypes.KpiSampleType.valueOf(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 getDeviceId();
    }

    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 getEndpointId();
    }

    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 getServiceId();
    }

    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 getSliceId();
    }

    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 (!getKpiDescriptionBytes().isEmpty()) {
        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());
      }
      unknownFields.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 (!getKpiDescriptionBytes().isEmpty()) {
        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());
      }
      size += unknownFields.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 (!unknownFields.equals(other.unknownFields)) 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();
      }
      hash = (29 * hash) + unknownFields.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() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getKpiIdListFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (kpiIdBuilder_ == null) {
          kpiId_ = null;
        } else {
          kpiId_ = null;
          kpiIdBuilder_ = null;
        }
        kpiDescription_ = "";

        if (kpiIdListBuilder_ == null) {
          kpiIdList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          kpiIdListBuilder_.clear();
        }
        kpiSampleType_ = 0;

        if (deviceIdBuilder_ == null) {
          deviceId_ = null;
        } else {
          deviceId_ = null;
          deviceIdBuilder_ = null;
        }
        if (endpointIdBuilder_ == null) {
          endpointId_ = null;
        } else {
          endpointId_ = null;
          endpointIdBuilder_ = null;
        }
        if (serviceIdBuilder_ == null) {
          serviceId_ = null;
        } else {
          serviceId_ = null;
          serviceIdBuilder_ = null;
        }
        if (sliceIdBuilder_ == null) {
          sliceId_ = null;
        } else {
          sliceId_ = null;
          sliceIdBuilder_ = 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);
        int from_bitField0_ = bitField0_;
        if (kpiIdBuilder_ == null) {
          result.kpiId_ = kpiId_;
        } else {
          result.kpiId_ = kpiIdBuilder_.build();
        }
        result.kpiDescription_ = kpiDescription_;
        if (kpiIdListBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            kpiIdList_ = java.util.Collections.unmodifiableList(kpiIdList_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.kpiIdList_ = kpiIdList_;
        } else {
          result.kpiIdList_ = kpiIdListBuilder_.build();
        }
        result.kpiSampleType_ = kpiSampleType_;
        if (deviceIdBuilder_ == null) {
          result.deviceId_ = deviceId_;
        } else {
          result.deviceId_ = deviceIdBuilder_.build();
        }
        if (endpointIdBuilder_ == null) {
          result.endpointId_ = endpointId_;
        } else {
          result.endpointId_ = endpointIdBuilder_.build();
        }
        if (serviceIdBuilder_ == null) {
          result.serviceId_ = serviceId_;
        } else {
          result.serviceId_ = serviceIdBuilder_.build();
        }
        if (sliceIdBuilder_ == null) {
          result.sliceId_ = sliceId_;
        } else {
          result.sliceId_ = sliceIdBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @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_;
          onChanged();
        }
        if (kpiIdListBuilder_ == null) {
          if (!other.kpiIdList_.isEmpty()) {
            if (kpiIdList_.isEmpty()) {
              kpiIdList_ = other.kpiIdList_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureKpiIdListIsMutable();
              kpiIdList_.addAll(other.kpiIdList_);
            }
            onChanged();
          }
        } else {
          if (!other.kpiIdList_.isEmpty()) {
            if (kpiIdListBuilder_.isEmpty()) {
              kpiIdListBuilder_.dispose();
              kpiIdListBuilder_ = null;
              kpiIdList_ = other.kpiIdList_;
              bitField0_ = (bitField0_ & ~0x00000001);
              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());
        }
        this.mergeUnknownFields(other.unknownFields);
        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 {
        monitoring.Monitoring.KpiDescriptor parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (monitoring.Monitoring.KpiDescriptor) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        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 kpiIdBuilder_ != null || kpiId_ != null;
      }
      /**
       * <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;
          onChanged();
        } else {
          kpiIdBuilder_.setMessage(value);
        }

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

        return this;
      }
      /**
       * <code>.monitoring.KpiId kpi_id = 1;</code>
       */
      public Builder mergeKpiId(monitoring.Monitoring.KpiId value) {
        if (kpiIdBuilder_ == null) {
          if (kpiId_ != null) {
            kpiId_ =
              monitoring.Monitoring.KpiId.newBuilder(kpiId_).mergeFrom(value).buildPartial();
          } else {
            kpiId_ = value;
          }
          onChanged();
        } else {
          kpiIdBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.monitoring.KpiId kpi_id = 1;</code>
       */
      public Builder clearKpiId() {
        if (kpiIdBuilder_ == null) {
          kpiId_ = null;
          onChanged();
        } else {
          kpiId_ = null;
          kpiIdBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.monitoring.KpiId kpi_id = 1;</code>
       */
      public monitoring.Monitoring.KpiId.Builder getKpiIdBuilder() {
        
        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;
        onChanged();
        return this;
      }
      /**
       * <code>string kpi_description = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearKpiDescription() {
        
        kpiDescription_ = getDefaultInstance().getKpiDescription();
        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;
        onChanged();
        return this;
      }

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

      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_ & ~0x00000001);
          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_ & 0x00000001) != 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;
        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() {
        @SuppressWarnings("deprecation")
        kpi_sample_types.KpiSampleTypes.KpiSampleType result = kpi_sample_types.KpiSampleTypes.KpiSampleType.valueOf(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();
        }
        
        kpiSampleType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.kpi_sample_types.KpiSampleType kpi_sample_type = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearKpiSampleType() {
        
        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 deviceIdBuilder_ != null || deviceId_ != null;
      }
      /**
       * <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;
          onChanged();
        } else {
          deviceIdBuilder_.setMessage(value);
        }

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

        return this;
      }
      /**
       * <code>.context.DeviceId device_id = 5;</code>
       */
      public Builder mergeDeviceId(context.ContextOuterClass.DeviceId value) {
        if (deviceIdBuilder_ == null) {
          if (deviceId_ != null) {
            deviceId_ =
              context.ContextOuterClass.DeviceId.newBuilder(deviceId_).mergeFrom(value).buildPartial();
          } else {
            deviceId_ = value;
          }
          onChanged();
        } else {
          deviceIdBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.context.DeviceId device_id = 5;</code>
       */
      public Builder clearDeviceId() {
        if (deviceIdBuilder_ == null) {
          deviceId_ = null;
          onChanged();
        } else {
          deviceId_ = null;
          deviceIdBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.context.DeviceId device_id = 5;</code>
       */
      public context.ContextOuterClass.DeviceId.Builder getDeviceIdBuilder() {
        
        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 endpointIdBuilder_ != null || endpointId_ != null;
      }
      /**
       * <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;
          onChanged();
        } else {
          endpointIdBuilder_.setMessage(value);
        }

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

        return this;
      }
      /**
       * <code>.context.EndPointId endpoint_id = 6;</code>
       */
      public Builder mergeEndpointId(context.ContextOuterClass.EndPointId value) {
        if (endpointIdBuilder_ == null) {
          if (endpointId_ != null) {
            endpointId_ =
              context.ContextOuterClass.EndPointId.newBuilder(endpointId_).mergeFrom(value).buildPartial();
          } else {
            endpointId_ = value;
          }
          onChanged();
        } else {
          endpointIdBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.context.EndPointId endpoint_id = 6;</code>
       */
      public Builder clearEndpointId() {
        if (endpointIdBuilder_ == null) {
          endpointId_ = null;
          onChanged();
        } else {
          endpointId_ = null;
          endpointIdBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.context.EndPointId endpoint_id = 6;</code>
       */
      public context.ContextOuterClass.EndPointId.Builder getEndpointIdBuilder() {
        
        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 serviceIdBuilder_ != null || serviceId_ != null;
      }
      /**
       * <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;
          onChanged();
        } else {
          serviceIdBuilder_.setMessage(value);
        }

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

        return this;
      }
      /**
       * <code>.context.ServiceId service_id = 7;</code>
       */
      public Builder mergeServiceId(context.ContextOuterClass.ServiceId value) {
        if (serviceIdBuilder_ == null) {
          if (serviceId_ != null) {
            serviceId_ =
              context.ContextOuterClass.ServiceId.newBuilder(serviceId_).mergeFrom(value).buildPartial();
          } else {
            serviceId_ = value;
          }
          onChanged();
        } else {
          serviceIdBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.context.ServiceId service_id = 7;</code>
       */
      public Builder clearServiceId() {
        if (serviceIdBuilder_ == null) {
          serviceId_ = null;
          onChanged();
        } else {
          serviceId_ = null;
          serviceIdBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.context.ServiceId service_id = 7;</code>
       */
      public context.ContextOuterClass.ServiceId.Builder getServiceIdBuilder() {
        
        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 sliceIdBuilder_ != null || sliceId_ != null;
      }
      /**
       * <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;
          onChanged();
        } else {
          sliceIdBuilder_.setMessage(value);
        }

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

        return this;
      }
      /**
       * <code>.context.SliceId slice_id = 8;</code>
       */
      public Builder mergeSliceId(context.ContextOuterClass.SliceId value) {
        if (sliceIdBuilder_ == null) {
          if (sliceId_ != null) {
            sliceId_ =
              context.ContextOuterClass.SliceId.newBuilder(sliceId_).mergeFrom(value).buildPartial();
          } else {
            sliceId_ = value;
          }
          onChanged();
        } else {
          sliceIdBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.context.SliceId slice_id = 8;</code>
       */
      public Builder clearSliceId() {
        if (sliceIdBuilder_ == null) {
          sliceId_ = null;
          onChanged();
        } else {
          sliceId_ = null;
          sliceIdBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.context.SliceId slice_id = 8;</code>
       */
      public context.ContextOuterClass.SliceId.Builder getSliceIdBuilder() {
        
        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_;
      }
      @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 {
        return new KpiDescriptor(input, extensionRegistry);
      }
    };

    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();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private MonitorKpiRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              monitoring.Monitoring.KpiId.Builder subBuilder = null;
              if (kpiId_ != null) {
                subBuilder = kpiId_.toBuilder();
              }
              kpiId_ = input.readMessage(monitoring.Monitoring.KpiId.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(kpiId_);
                kpiId_ = subBuilder.buildPartial();
              }

              break;
            }
            case 21: {

              monitoringWindowS_ = input.readFloat();
              break;
            }
            case 29: {

              samplingRateS_ = input.readFloat();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    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 getKpiId();
    }

    public static final int MONITORING_WINDOW_S_FIELD_NUMBER = 2;
    private float monitoringWindowS_;
    /**
     * <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_;
    /**
     * <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 (monitoringWindowS_ != 0F) {
        output.writeFloat(2, monitoringWindowS_);
      }
      if (samplingRateS_ != 0F) {
        output.writeFloat(3, samplingRateS_);
      }
      unknownFields.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 (monitoringWindowS_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(2, monitoringWindowS_);
      }
      if (samplingRateS_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(3, samplingRateS_);
      }
      size += unknownFields.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 (!unknownFields.equals(other.unknownFields)) 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) + unknownFields.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() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (kpiIdBuilder_ == null) {
          kpiId_ = null;
        } else {
          kpiId_ = null;
          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 (kpiIdBuilder_ == null) {
          result.kpiId_ = kpiId_;
        } else {
          result.kpiId_ = kpiIdBuilder_.build();
        }
        result.monitoringWindowS_ = monitoringWindowS_;
        result.samplingRateS_ = samplingRateS_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @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.unknownFields);
        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 {
        monitoring.Monitoring.MonitorKpiRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (monitoring.Monitoring.MonitorKpiRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        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 = 1;</code>
       * @return Whether the kpiId field is set.
       */
      public boolean hasKpiId() {
        return kpiIdBuilder_ != null || kpiId_ != null;
      }
      /**
       * <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;
          onChanged();
        } else {
          kpiIdBuilder_.setMessage(value);
        }

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

        return this;
      }
      /**
       * <code>.monitoring.KpiId kpi_id = 1;</code>
       */
      public Builder mergeKpiId(monitoring.Monitoring.KpiId value) {
        if (kpiIdBuilder_ == null) {
          if (kpiId_ != null) {
            kpiId_ =
              monitoring.Monitoring.KpiId.newBuilder(kpiId_).mergeFrom(value).buildPartial();
          } else {
            kpiId_ = value;
          }
          onChanged();
        } else {
          kpiIdBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.monitoring.KpiId kpi_id = 1;</code>
       */
      public Builder clearKpiId() {
        if (kpiIdBuilder_ == null) {
          kpiId_ = null;
          onChanged();
        } else {
          kpiId_ = null;
          kpiIdBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.monitoring.KpiId kpi_id = 1;</code>
       */
      public monitoring.Monitoring.KpiId.Builder getKpiIdBuilder() {
        
        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;
        onChanged();
        return this;
      }
      /**
       * <code>float monitoring_window_s = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearMonitoringWindowS() {
        
        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;
        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() {
        
        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 {
        return new MonitorKpiRequest(input, extensionRegistry);
      }
    };

    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>.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();

    /**
     * <code>float sampling_rate_s = 3;</code>
     * @return The samplingRateS.
     */
    float getSamplingRateS();

    /**
     * <pre>
     * used when you want something like "get the last N many samples
     * </pre>
     *
     * <code>uint32 last_n_samples = 4;</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 = 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.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() {
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private KpiQuery(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              monitoring.Monitoring.KpiId.Builder subBuilder = null;
              if (kpiId_ != null) {
                subBuilder = kpiId_.toBuilder();
              }
              kpiId_ = input.readMessage(monitoring.Monitoring.KpiId.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(kpiId_);
                kpiId_ = subBuilder.buildPartial();
              }

              break;
            }
            case 21: {

              monitoringWindowS_ = input.readFloat();
              break;
            }
            case 29: {

              samplingRateS_ = input.readFloat();
              break;
            }
            case 32: {

              lastNSamples_ = input.readUInt32();
              break;
            }
            case 42: {
              context.ContextOuterClass.Timestamp.Builder subBuilder = null;
              if (startTimestamp_ != null) {
                subBuilder = startTimestamp_.toBuilder();
              }
              startTimestamp_ = input.readMessage(context.ContextOuterClass.Timestamp.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(startTimestamp_);
                startTimestamp_ = subBuilder.buildPartial();
              }

              break;
            }
            case 50: {
              context.ContextOuterClass.Timestamp.Builder subBuilder = null;
              if (endTimestamp_ != null) {
                subBuilder = endTimestamp_.toBuilder();
              }
              endTimestamp_ = input.readMessage(context.ContextOuterClass.Timestamp.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(endTimestamp_);
                endTimestamp_ = subBuilder.buildPartial();
              }

              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    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_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 getKpiId();
    }

    public static final int MONITORING_WINDOW_S_FIELD_NUMBER = 2;
    private float monitoringWindowS_;
    /**
     * <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_;
    /**
     * <code>float sampling_rate_s = 3;</code>
     * @return The samplingRateS.
     */
    @java.lang.Override
    public float getSamplingRateS() {
      return samplingRateS_;
    }

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

    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 getStartTimestamp();
    }

    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 getEndTimestamp();
    }

    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 (monitoringWindowS_ != 0F) {
        output.writeFloat(2, monitoringWindowS_);
      }
      if (samplingRateS_ != 0F) {
        output.writeFloat(3, samplingRateS_);
      }
      if (lastNSamples_ != 0) {
        output.writeUInt32(4, lastNSamples_);
      }
      if (startTimestamp_ != null) {
        output.writeMessage(5, getStartTimestamp());
      }
      if (endTimestamp_ != null) {
        output.writeMessage(6, getEndTimestamp());
      }
      unknownFields.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 (monitoringWindowS_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(2, monitoringWindowS_);
      }
      if (samplingRateS_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(3, samplingRateS_);
      }
      if (lastNSamples_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, lastNSamples_);
      }
      if (startTimestamp_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getStartTimestamp());
      }
      if (endTimestamp_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, getEndTimestamp());
      }
      size += unknownFields.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 (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 (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 (!unknownFields.equals(other.unknownFields)) 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 = (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) + unknownFields.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() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (kpiIdBuilder_ == null) {
          kpiId_ = null;
        } else {
          kpiId_ = null;
          kpiIdBuilder_ = null;
        }
        monitoringWindowS_ = 0F;

        samplingRateS_ = 0F;

        lastNSamples_ = 0;

        if (startTimestampBuilder_ == null) {
          startTimestamp_ = null;
        } else {
          startTimestamp_ = null;
          startTimestampBuilder_ = null;
        }
        if (endTimestampBuilder_ == null) {
          endTimestamp_ = null;
        } else {
          endTimestamp_ = null;
          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);
        if (kpiIdBuilder_ == null) {
          result.kpiId_ = kpiId_;
        } else {
          result.kpiId_ = kpiIdBuilder_.build();
        }
        result.monitoringWindowS_ = monitoringWindowS_;
        result.samplingRateS_ = samplingRateS_;
        result.lastNSamples_ = lastNSamples_;
        if (startTimestampBuilder_ == null) {
          result.startTimestamp_ = startTimestamp_;
        } else {
          result.startTimestamp_ = startTimestampBuilder_.build();
        }
        if (endTimestampBuilder_ == null) {
          result.endTimestamp_ = endTimestamp_;
        } else {
          result.endTimestamp_ = endTimestampBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @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 (other.hasKpiId()) {
          mergeKpiId(other.getKpiId());
        }
        if (other.getMonitoringWindowS() != 0F) {
          setMonitoringWindowS(other.getMonitoringWindowS());
        }
        if (other.getSamplingRateS() != 0F) {
          setSamplingRateS(other.getSamplingRateS());
        }
        if (other.getLastNSamples() != 0) {
          setLastNSamples(other.getLastNSamples());
        }
        if (other.hasStartTimestamp()) {
          mergeStartTimestamp(other.getStartTimestamp());
        }
        if (other.hasEndTimestamp()) {
          mergeEndTimestamp(other.getEndTimestamp());
        }
        this.mergeUnknownFields(other.unknownFields);
        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 {
        monitoring.Monitoring.KpiQuery parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (monitoring.Monitoring.KpiQuery) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        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 = 1;</code>
       * @return Whether the kpiId field is set.
       */
      public boolean hasKpiId() {
        return kpiIdBuilder_ != null || kpiId_ != null;
      }
      /**
       * <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;
          onChanged();
        } else {
          kpiIdBuilder_.setMessage(value);
        }

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

        return this;
      }
      /**
       * <code>.monitoring.KpiId kpi_id = 1;</code>
       */
      public Builder mergeKpiId(monitoring.Monitoring.KpiId value) {
        if (kpiIdBuilder_ == null) {
          if (kpiId_ != null) {
            kpiId_ =
              monitoring.Monitoring.KpiId.newBuilder(kpiId_).mergeFrom(value).buildPartial();
          } else {
            kpiId_ = value;
          }
          onChanged();
        } else {
          kpiIdBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.monitoring.KpiId kpi_id = 1;</code>
       */
      public Builder clearKpiId() {
        if (kpiIdBuilder_ == null) {
          kpiId_ = null;
          onChanged();
        } else {
          kpiId_ = null;
          kpiIdBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.monitoring.KpiId kpi_id = 1;</code>
       */
      public monitoring.Monitoring.KpiId.Builder getKpiIdBuilder() {
        
        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;
        onChanged();
        return this;
      }
      /**
       * <code>float monitoring_window_s = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearMonitoringWindowS() {
        
        monitoringWindowS_ = 0F;
        onChanged();
        return this;
      }

      private float samplingRateS_ ;
      /**
       * <code>float sampling_rate_s = 3;</code>
       * @return The samplingRateS.
       */
      @java.lang.Override
      public float getSamplingRateS() {
        return samplingRateS_;
      }
      /**
       * <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;
        onChanged();
        return this;
      }
      /**
       * <code>float sampling_rate_s = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearSamplingRateS() {
        
        samplingRateS_ = 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 = 4;</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 = 4;</code>
       * @param value The lastNSamples to set.
       * @return This builder for chaining.
       */
      public Builder setLastNSamples(int value) {
        
        lastNSamples_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * used when you want something like "get the last N many samples
       * </pre>
       *
       * <code>uint32 last_n_samples = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearLastNSamples() {
        
        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 = 5;</code>
       * @return Whether the startTimestamp field is set.
       */
      public boolean hasStartTimestamp() {
        return startTimestampBuilder_ != null || 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.
       */
      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;
          onChanged();
        } else {
          startTimestampBuilder_.setMessage(value);
        }

        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();
          onChanged();
        } else {
          startTimestampBuilder_.setMessage(builderForValue.build());
        }

        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 (startTimestamp_ != null) {
            startTimestamp_ =
              context.ContextOuterClass.Timestamp.newBuilder(startTimestamp_).mergeFrom(value).buildPartial();
          } else {
            startTimestamp_ = value;
          }
          onChanged();
        } else {
          startTimestampBuilder_.mergeFrom(value);
        }

        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() {
        if (startTimestampBuilder_ == null) {
          startTimestamp_ = null;
          onChanged();
        } else {
          startTimestamp_ = null;
          startTimestampBuilder_ = null;
        }

        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() {
        
        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 endTimestampBuilder_ != null || 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.
       */
      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;
          onChanged();
        } else {
          endTimestampBuilder_.setMessage(value);
        }

        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();
          onChanged();
        } else {
          endTimestampBuilder_.setMessage(builderForValue.build());
        }

        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 (endTimestamp_ != null) {
            endTimestamp_ =
              context.ContextOuterClass.Timestamp.newBuilder(endTimestamp_).mergeFrom(value).buildPartial();
          } else {
            endTimestamp_ = value;
          }
          onChanged();
        } else {
          endTimestampBuilder_.mergeFrom(value);
        }

        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() {
        if (endTimestampBuilder_ == null) {
          endTimestamp_ = null;
          onChanged();
        } else {
          endTimestamp_ = null;
          endTimestampBuilder_ = null;
        }

        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() {
        
        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.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 {
        return new KpiQuery(input, extensionRegistry);
      }
    };

    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 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();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private KpiId(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              context.ContextOuterClass.Uuid.Builder subBuilder = null;
              if (kpiId_ != null) {
                subBuilder = kpiId_.toBuilder();
              }
              kpiId_ = input.readMessage(context.ContextOuterClass.Uuid.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(kpiId_);
                kpiId_ = subBuilder.buildPartial();
              }

              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    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 getKpiId();
    }

    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());
      }
      unknownFields.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 += unknownFields.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 (!unknownFields.equals(other.unknownFields)) 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) + unknownFields.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() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (kpiIdBuilder_ == null) {
          kpiId_ = null;
        } else {
          kpiId_ = null;
          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 (kpiIdBuilder_ == null) {
          result.kpiId_ = kpiId_;
        } else {
          result.kpiId_ = kpiIdBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @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.unknownFields);
        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 {
        monitoring.Monitoring.KpiId parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (monitoring.Monitoring.KpiId) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      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 kpiIdBuilder_ != null || kpiId_ != null;
      }
      /**
       * <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;
          onChanged();
        } else {
          kpiIdBuilder_.setMessage(value);
        }

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

        return this;
      }
      /**
       * <code>.context.Uuid kpi_id = 1;</code>
       */
      public Builder mergeKpiId(context.ContextOuterClass.Uuid value) {
        if (kpiIdBuilder_ == null) {
          if (kpiId_ != null) {
            kpiId_ =
              context.ContextOuterClass.Uuid.newBuilder(kpiId_).mergeFrom(value).buildPartial();
          } else {
            kpiId_ = value;
          }
          onChanged();
        } else {
          kpiIdBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.context.Uuid kpi_id = 1;</code>
       */
      public Builder clearKpiId() {
        if (kpiIdBuilder_ == null) {
          kpiId_ = null;
          onChanged();
        } else {
          kpiId_ = null;
          kpiIdBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.context.Uuid kpi_id = 1;</code>
       */
      public context.ContextOuterClass.Uuid.Builder getKpiIdBuilder() {
        
        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 {
        return new KpiId(input, extensionRegistry);
      }
    };

    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();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Kpi(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              monitoring.Monitoring.KpiId.Builder subBuilder = null;
              if (kpiId_ != null) {
                subBuilder = kpiId_.toBuilder();
              }
              kpiId_ = input.readMessage(monitoring.Monitoring.KpiId.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(kpiId_);
                kpiId_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {
              context.ContextOuterClass.Timestamp.Builder subBuilder = null;
              if (timestamp_ != null) {
                subBuilder = timestamp_.toBuilder();
              }
              timestamp_ = input.readMessage(context.ContextOuterClass.Timestamp.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(timestamp_);
                timestamp_ = subBuilder.buildPartial();
              }

              break;
            }
            case 26: {
              monitoring.Monitoring.KpiValue.Builder subBuilder = null;
              if (kpiValue_ != null) {
                subBuilder = kpiValue_.toBuilder();
              }
              kpiValue_ = input.readMessage(monitoring.Monitoring.KpiValue.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(kpiValue_);
                kpiValue_ = subBuilder.buildPartial();
              }

              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    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 getKpiId();
    }

    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 getTimestamp();
    }

    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 getKpiValue();
    }

    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());
      }
      unknownFields.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 += unknownFields.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 (!unknownFields.equals(other.unknownFields)) 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) + unknownFields.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() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (kpiIdBuilder_ == null) {
          kpiId_ = null;
        } else {
          kpiId_ = null;
          kpiIdBuilder_ = null;
        }
        if (timestampBuilder_ == null) {
          timestamp_ = null;
        } else {
          timestamp_ = null;
          timestampBuilder_ = null;
        }
        if (kpiValueBuilder_ == null) {
          kpiValue_ = null;
        } else {
          kpiValue_ = null;
          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 (kpiIdBuilder_ == null) {
          result.kpiId_ = kpiId_;
        } else {
          result.kpiId_ = kpiIdBuilder_.build();
        }
        if (timestampBuilder_ == null) {
          result.timestamp_ = timestamp_;
        } else {
          result.timestamp_ = timestampBuilder_.build();
        }
        if (kpiValueBuilder_ == null) {
          result.kpiValue_ = kpiValue_;
        } else {
          result.kpiValue_ = kpiValueBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @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.unknownFields);
        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 {
        monitoring.Monitoring.Kpi parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (monitoring.Monitoring.Kpi) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        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 = 1;</code>
       * @return Whether the kpiId field is set.
       */
      public boolean hasKpiId() {
        return kpiIdBuilder_ != null || kpiId_ != null;
      }
      /**
       * <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;
          onChanged();
        } else {
          kpiIdBuilder_.setMessage(value);
        }

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

        return this;
      }
      /**
       * <code>.monitoring.KpiId kpi_id = 1;</code>
       */
      public Builder mergeKpiId(monitoring.Monitoring.KpiId value) {
        if (kpiIdBuilder_ == null) {
          if (kpiId_ != null) {
            kpiId_ =
              monitoring.Monitoring.KpiId.newBuilder(kpiId_).mergeFrom(value).buildPartial();
          } else {
            kpiId_ = value;
          }
          onChanged();
        } else {
          kpiIdBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.monitoring.KpiId kpi_id = 1;</code>
       */
      public Builder clearKpiId() {
        if (kpiIdBuilder_ == null) {
          kpiId_ = null;
          onChanged();
        } else {
          kpiId_ = null;
          kpiIdBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.monitoring.KpiId kpi_id = 1;</code>
       */
      public monitoring.Monitoring.KpiId.Builder getKpiIdBuilder() {
        
        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 timestampBuilder_ != null || timestamp_ != null;
      }
      /**
       * <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;
          onChanged();
        } else {
          timestampBuilder_.setMessage(value);
        }

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

        return this;
      }
      /**
       * <code>.context.Timestamp timestamp = 2;</code>
       */
      public Builder mergeTimestamp(context.ContextOuterClass.Timestamp value) {
        if (timestampBuilder_ == null) {
          if (timestamp_ != null) {
            timestamp_ =
              context.ContextOuterClass.Timestamp.newBuilder(timestamp_).mergeFrom(value).buildPartial();
          } else {
            timestamp_ = value;
          }
          onChanged();
        } else {
          timestampBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.context.Timestamp timestamp = 2;</code>
       */
      public Builder clearTimestamp() {
        if (timestampBuilder_ == null) {
          timestamp_ = null;
          onChanged();
        } else {
          timestamp_ = null;
          timestampBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.context.Timestamp timestamp = 2;</code>
       */
      public context.ContextOuterClass.Timestamp.Builder getTimestampBuilder() {
        
        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 kpiValueBuilder_ != null || kpiValue_ != null;
      }
      /**
       * <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;
          onChanged();
        } else {
          kpiValueBuilder_.setMessage(value);
        }

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

        return this;
      }
      /**
       * <code>.monitoring.KpiValue kpi_value = 3;</code>
       */
      public Builder mergeKpiValue(monitoring.Monitoring.KpiValue value) {
        if (kpiValueBuilder_ == null) {
          if (kpiValue_ != null) {
            kpiValue_ =
              monitoring.Monitoring.KpiValue.newBuilder(kpiValue_).mergeFrom(value).buildPartial();
          } else {
            kpiValue_ = value;
          }
          onChanged();
        } else {
          kpiValueBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.monitoring.KpiValue kpi_value = 3;</code>
       */
      public Builder clearKpiValue() {
        if (kpiValueBuilder_ == null) {
          kpiValue_ = null;
          onChanged();
        } else {
          kpiValue_ = null;
          kpiValueBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.monitoring.KpiValue kpi_value = 3;</code>
       */
      public monitoring.Monitoring.KpiValue.Builder getKpiValueBuilder() {
        
        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 {
        return new Kpi(input, extensionRegistry);
      }
    };

    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();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private KpiValueRange(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              monitoring.Monitoring.KpiValue.Builder subBuilder = null;
              if (kpiMinValue_ != null) {
                subBuilder = kpiMinValue_.toBuilder();
              }
              kpiMinValue_ = input.readMessage(monitoring.Monitoring.KpiValue.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(kpiMinValue_);
                kpiMinValue_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {
              monitoring.Monitoring.KpiValue.Builder subBuilder = null;
              if (kpiMaxValue_ != null) {
                subBuilder = kpiMaxValue_.toBuilder();
              }
              kpiMaxValue_ = input.readMessage(monitoring.Monitoring.KpiValue.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(kpiMaxValue_);
                kpiMaxValue_ = subBuilder.buildPartial();
              }

              break;
            }
            case 24: {

              inRange_ = input.readBool();
              break;
            }
            case 32: {

              includeMinValue_ = input.readBool();
              break;
            }
            case 40: {

              includeMaxValue_ = input.readBool();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    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 getKpiMinValue();
    }

    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 getKpiMaxValue();
    }

    public static final int INRANGE_FIELD_NUMBER = 3;
    private boolean inRange_;
    /**
     * <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_;
    /**
     * <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_;
    /**
     * <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_);
      }
      unknownFields.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 += unknownFields.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 (!unknownFields.equals(other.unknownFields)) 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) + unknownFields.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() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (kpiMinValueBuilder_ == null) {
          kpiMinValue_ = null;
        } else {
          kpiMinValue_ = null;
          kpiMinValueBuilder_ = null;
        }
        if (kpiMaxValueBuilder_ == null) {
          kpiMaxValue_ = null;
        } else {
          kpiMaxValue_ = null;
          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 (kpiMinValueBuilder_ == null) {
          result.kpiMinValue_ = kpiMinValue_;
        } else {
          result.kpiMinValue_ = kpiMinValueBuilder_.build();
        }
        if (kpiMaxValueBuilder_ == null) {
          result.kpiMaxValue_ = kpiMaxValue_;
        } else {
          result.kpiMaxValue_ = kpiMaxValueBuilder_.build();
        }
        result.inRange_ = inRange_;
        result.includeMinValue_ = includeMinValue_;
        result.includeMaxValue_ = includeMaxValue_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @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.unknownFields);
        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 {
        monitoring.Monitoring.KpiValueRange parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (monitoring.Monitoring.KpiValueRange) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      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 kpiMinValueBuilder_ != null || kpiMinValue_ != null;
      }
      /**
       * <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;
          onChanged();
        } else {
          kpiMinValueBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.monitoring.KpiValue kpiMinValue = 1;</code>
       */
      public Builder setKpiMinValue(
          monitoring.Monitoring.KpiValue.Builder builderForValue) {
        if (kpiMinValueBuilder_ == null) {
          kpiMinValue_ = builderForValue.build();
          onChanged();
        } else {
          kpiMinValueBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.monitoring.KpiValue kpiMinValue = 1;</code>
       */
      public Builder mergeKpiMinValue(monitoring.Monitoring.KpiValue value) {
        if (kpiMinValueBuilder_ == null) {
          if (kpiMinValue_ != null) {
            kpiMinValue_ =
              monitoring.Monitoring.KpiValue.newBuilder(kpiMinValue_).mergeFrom(value).buildPartial();
          } else {
            kpiMinValue_ = value;
          }
          onChanged();
        } else {
          kpiMinValueBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.monitoring.KpiValue kpiMinValue = 1;</code>
       */
      public Builder clearKpiMinValue() {
        if (kpiMinValueBuilder_ == null) {
          kpiMinValue_ = null;
          onChanged();
        } else {
          kpiMinValue_ = null;
          kpiMinValueBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.monitoring.KpiValue kpiMinValue = 1;</code>
       */
      public monitoring.Monitoring.KpiValue.Builder getKpiMinValueBuilder() {
        
        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 kpiMaxValueBuilder_ != null || kpiMaxValue_ != null;
      }
      /**
       * <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;
          onChanged();
        } else {
          kpiMaxValueBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.monitoring.KpiValue kpiMaxValue = 2;</code>
       */
      public Builder setKpiMaxValue(
          monitoring.Monitoring.KpiValue.Builder builderForValue) {
        if (kpiMaxValueBuilder_ == null) {
          kpiMaxValue_ = builderForValue.build();
          onChanged();
        } else {
          kpiMaxValueBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.monitoring.KpiValue kpiMaxValue = 2;</code>
       */
      public Builder mergeKpiMaxValue(monitoring.Monitoring.KpiValue value) {
        if (kpiMaxValueBuilder_ == null) {
          if (kpiMaxValue_ != null) {
            kpiMaxValue_ =
              monitoring.Monitoring.KpiValue.newBuilder(kpiMaxValue_).mergeFrom(value).buildPartial();
          } else {
            kpiMaxValue_ = value;
          }
          onChanged();
        } else {
          kpiMaxValueBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.monitoring.KpiValue kpiMaxValue = 2;</code>
       */
      public Builder clearKpiMaxValue() {
        if (kpiMaxValueBuilder_ == null) {
          kpiMaxValue_ = null;
          onChanged();
        } else {
          kpiMaxValue_ = null;
          kpiMaxValueBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.monitoring.KpiValue kpiMaxValue = 2;</code>
       */
      public monitoring.Monitoring.KpiValue.Builder getKpiMaxValueBuilder() {
        
        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;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * by default True
       * </pre>
       *
       * <code>bool inRange = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearInRange() {
        
        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;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * False is outside the interval
       * </pre>
       *
       * <code>bool includeMinValue = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearIncludeMinValue() {
        
        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;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * False is outside the interval
       * </pre>
       *
       * <code>bool includeMaxValue = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearIncludeMaxValue() {
        
        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 {
        return new KpiValueRange(input, extensionRegistry);
      }
    };

    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();

    public 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();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private KpiValue(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {
              valueCase_ = 1;
              value_ = input.readInt32();
              break;
            }
            case 16: {
              valueCase_ = 2;
              value_ = input.readUInt32();
              break;
            }
            case 24: {
              valueCase_ = 3;
              value_ = input.readInt64();
              break;
            }
            case 32: {
              valueCase_ = 4;
              value_ = input.readUInt64();
              break;
            }
            case 45: {
              valueCase_ = 5;
              value_ = input.readFloat();
              break;
            }
            case 50: {
              java.lang.String s = input.readStringRequireUtf8();
              valueCase_ = 6;
              value_ = s;
              break;
            }
            case 56: {
              valueCase_ = 7;
              value_ = input.readBool();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    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;
    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_));
      }
      unknownFields.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 += unknownFields.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 (!unknownFields.equals(other.unknownFields)) 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) + unknownFields.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() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        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 (valueCase_ == 1) {
          result.value_ = value_;
        }
        if (valueCase_ == 2) {
          result.value_ = value_;
        }
        if (valueCase_ == 3) {
          result.value_ = value_;
        }
        if (valueCase_ == 4) {
          result.value_ = value_;
        }
        if (valueCase_ == 5) {
          result.value_ = value_;
        }
        if (valueCase_ == 6) {
          result.value_ = value_;
        }
        if (valueCase_ == 7) {
          result.value_ = value_;
        }
        result.valueCase_ = valueCase_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, 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.unknownFields);
        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 {
        monitoring.Monitoring.KpiValue parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (monitoring.Monitoring.KpiValue) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        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;
      }


      /**
       * <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 {
        return new KpiValue(input, extensionRegistry);
      }
    };

    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();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private KpiList(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                kpi_ = new java.util.ArrayList<monitoring.Monitoring.Kpi>();
                mutable_bitField0_ |= 0x00000001;
              }
              kpi_.add(
                  input.readMessage(monitoring.Monitoring.Kpi.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          kpi_ = java.util.Collections.unmodifiableList(kpi_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    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;
    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));
      }
      unknownFields.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 += unknownFields.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 (!unknownFields.equals(other.unknownFields)) 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) + unknownFields.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() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getKpiFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (kpiBuilder_ == null) {
          kpi_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          kpiBuilder_.clear();
        }
        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);
        int from_bitField0_ = bitField0_;
        if (kpiBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            kpi_ = java.util.Collections.unmodifiableList(kpi_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.kpi_ = kpi_;
        } else {
          result.kpi_ = kpiBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @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.unknownFields);
        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 {
        monitoring.Monitoring.KpiList parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (monitoring.Monitoring.KpiList) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        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 {
        return new KpiList(input, extensionRegistry);
      }
    };

    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();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private KpiDescriptorList(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                kpiDescriptorList_ = new java.util.ArrayList<monitoring.Monitoring.KpiDescriptor>();
                mutable_bitField0_ |= 0x00000001;
              }
              kpiDescriptorList_.add(
                  input.readMessage(monitoring.Monitoring.KpiDescriptor.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          kpiDescriptorList_ = java.util.Collections.unmodifiableList(kpiDescriptorList_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    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;
    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));
      }
      unknownFields.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 += unknownFields.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 (!unknownFields.equals(other.unknownFields)) 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) + unknownFields.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() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getKpiDescriptorListFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (kpiDescriptorListBuilder_ == null) {
          kpiDescriptorList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          kpiDescriptorListBuilder_.clear();
        }
        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);
        int from_bitField0_ = bitField0_;
        if (kpiDescriptorListBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            kpiDescriptorList_ = java.util.Collections.unmodifiableList(kpiDescriptorList_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.kpiDescriptorList_ = kpiDescriptorList_;
        } else {
          result.kpiDescriptorList_ = kpiDescriptorListBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @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.unknownFields);
        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 {
        monitoring.Monitoring.KpiDescriptorList parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (monitoring.Monitoring.KpiDescriptorList) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        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 {
        return new KpiDescriptorList(input, extensionRegistry);
      }
    };

    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();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private SubsDescriptor(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              monitoring.Monitoring.SubscriptionID.Builder subBuilder = null;
              if (subsId_ != null) {
                subBuilder = subsId_.toBuilder();
              }
              subsId_ = input.readMessage(monitoring.Monitoring.SubscriptionID.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(subsId_);
                subsId_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {
              monitoring.Monitoring.KpiId.Builder subBuilder = null;
              if (kpiId_ != null) {
                subBuilder = kpiId_.toBuilder();
              }
              kpiId_ = input.readMessage(monitoring.Monitoring.KpiId.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(kpiId_);
                kpiId_ = subBuilder.buildPartial();
              }

              break;
            }
            case 29: {

              samplingDurationS_ = input.readFloat();
              break;
            }
            case 37: {

              samplingIntervalS_ = input.readFloat();
              break;
            }
            case 42: {
              context.ContextOuterClass.Timestamp.Builder subBuilder = null;
              if (startTimestamp_ != null) {
                subBuilder = startTimestamp_.toBuilder();
              }
              startTimestamp_ = input.readMessage(context.ContextOuterClass.Timestamp.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(startTimestamp_);
                startTimestamp_ = subBuilder.buildPartial();
              }

              break;
            }
            case 50: {
              context.ContextOuterClass.Timestamp.Builder subBuilder = null;
              if (endTimestamp_ != null) {
                subBuilder = endTimestamp_.toBuilder();
              }
              endTimestamp_ = input.readMessage(context.ContextOuterClass.Timestamp.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(endTimestamp_);
                endTimestamp_ = subBuilder.buildPartial();
              }

              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    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 getSubsId();
    }

    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 getKpiId();
    }

    public static final int SAMPLING_DURATION_S_FIELD_NUMBER = 3;
    private float samplingDurationS_;
    /**
     * <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_;
    /**
     * <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 getStartTimestamp();
    }

    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 getEndTimestamp();
    }

    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 (samplingDurationS_ != 0F) {
        output.writeFloat(3, samplingDurationS_);
      }
      if (samplingIntervalS_ != 0F) {
        output.writeFloat(4, samplingIntervalS_);
      }
      if (startTimestamp_ != null) {
        output.writeMessage(5, getStartTimestamp());
      }
      if (endTimestamp_ != null) {
        output.writeMessage(6, getEndTimestamp());
      }
      unknownFields.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 (samplingDurationS_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(3, samplingDurationS_);
      }
      if (samplingIntervalS_ != 0F) {
        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 += unknownFields.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 (!unknownFields.equals(other.unknownFields)) 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) + unknownFields.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() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (subsIdBuilder_ == null) {
          subsId_ = null;
        } else {
          subsId_ = null;
          subsIdBuilder_ = null;
        }
        if (kpiIdBuilder_ == null) {
          kpiId_ = null;
        } else {
          kpiId_ = null;
          kpiIdBuilder_ = null;
        }
        samplingDurationS_ = 0F;

        samplingIntervalS_ = 0F;

        if (startTimestampBuilder_ == null) {
          startTimestamp_ = null;
        } else {
          startTimestamp_ = null;
          startTimestampBuilder_ = null;
        }
        if (endTimestampBuilder_ == null) {
          endTimestamp_ = null;
        } else {
          endTimestamp_ = null;
          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 (subsIdBuilder_ == null) {
          result.subsId_ = subsId_;
        } else {
          result.subsId_ = subsIdBuilder_.build();
        }
        if (kpiIdBuilder_ == null) {
          result.kpiId_ = kpiId_;
        } else {
          result.kpiId_ = kpiIdBuilder_.build();
        }
        result.samplingDurationS_ = samplingDurationS_;
        result.samplingIntervalS_ = samplingIntervalS_;
        if (startTimestampBuilder_ == null) {
          result.startTimestamp_ = startTimestamp_;
        } else {
          result.startTimestamp_ = startTimestampBuilder_.build();
        }
        if (endTimestampBuilder_ == null) {
          result.endTimestamp_ = endTimestamp_;
        } else {
          result.endTimestamp_ = endTimestampBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @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.unknownFields);
        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 {
        monitoring.Monitoring.SubsDescriptor parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (monitoring.Monitoring.SubsDescriptor) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      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 subsIdBuilder_ != null || subsId_ != null;
      }
      /**
       * <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;
          onChanged();
        } else {
          subsIdBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.monitoring.SubscriptionID subs_id = 1;</code>
       */
      public Builder setSubsId(
          monitoring.Monitoring.SubscriptionID.Builder builderForValue) {
        if (subsIdBuilder_ == null) {
          subsId_ = builderForValue.build();
          onChanged();
        } else {
          subsIdBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.monitoring.SubscriptionID subs_id = 1;</code>
       */
      public Builder mergeSubsId(monitoring.Monitoring.SubscriptionID value) {
        if (subsIdBuilder_ == null) {
          if (subsId_ != null) {
            subsId_ =
              monitoring.Monitoring.SubscriptionID.newBuilder(subsId_).mergeFrom(value).buildPartial();
          } else {
            subsId_ = value;
          }
          onChanged();
        } else {
          subsIdBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.monitoring.SubscriptionID subs_id = 1;</code>
       */
      public Builder clearSubsId() {
        if (subsIdBuilder_ == null) {
          subsId_ = null;
          onChanged();
        } else {
          subsId_ = null;
          subsIdBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.monitoring.SubscriptionID subs_id = 1;</code>
       */
      public monitoring.Monitoring.SubscriptionID.Builder getSubsIdBuilder() {
        
        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 kpiIdBuilder_ != null || kpiId_ != null;
      }
      /**
       * <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;
          onChanged();
        } else {
          kpiIdBuilder_.setMessage(value);
        }

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

        return this;
      }
      /**
       * <code>.monitoring.KpiId kpi_id = 2;</code>
       */
      public Builder mergeKpiId(monitoring.Monitoring.KpiId value) {
        if (kpiIdBuilder_ == null) {
          if (kpiId_ != null) {
            kpiId_ =
              monitoring.Monitoring.KpiId.newBuilder(kpiId_).mergeFrom(value).buildPartial();
          } else {
            kpiId_ = value;
          }
          onChanged();
        } else {
          kpiIdBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.monitoring.KpiId kpi_id = 2;</code>
       */
      public Builder clearKpiId() {
        if (kpiIdBuilder_ == null) {
          kpiId_ = null;
          onChanged();
        } else {
          kpiId_ = null;
          kpiIdBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.monitoring.KpiId kpi_id = 2;</code>
       */
      public monitoring.Monitoring.KpiId.Builder getKpiIdBuilder() {
        
        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;
        onChanged();
        return this;
      }
      /**
       * <code>float sampling_duration_s = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearSamplingDurationS() {
        
        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;
        onChanged();
        return this;
      }
      /**
       * <code>float sampling_interval_s = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearSamplingIntervalS() {
        
        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 startTimestampBuilder_ != null || 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.
       */
      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;
          onChanged();
        } else {
          startTimestampBuilder_.setMessage(value);
        }

        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();
          onChanged();
        } else {
          startTimestampBuilder_.setMessage(builderForValue.build());
        }

        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 (startTimestamp_ != null) {
            startTimestamp_ =
              context.ContextOuterClass.Timestamp.newBuilder(startTimestamp_).mergeFrom(value).buildPartial();
          } else {
            startTimestamp_ = value;
          }
          onChanged();
        } else {
          startTimestampBuilder_.mergeFrom(value);
        }

        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() {
        if (startTimestampBuilder_ == null) {
          startTimestamp_ = null;
          onChanged();
        } else {
          startTimestamp_ = null;
          startTimestampBuilder_ = null;
        }

        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() {
        
        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 endTimestampBuilder_ != null || 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.
       */
      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;
          onChanged();
        } else {
          endTimestampBuilder_.setMessage(value);
        }

        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();
          onChanged();
        } else {
          endTimestampBuilder_.setMessage(builderForValue.build());
        }

        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 (endTimestamp_ != null) {
            endTimestamp_ =
              context.ContextOuterClass.Timestamp.newBuilder(endTimestamp_).mergeFrom(value).buildPartial();
          } else {
            endTimestamp_ = value;
          }
          onChanged();
        } else {
          endTimestampBuilder_.mergeFrom(value);
        }

        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() {
        if (endTimestampBuilder_ == null) {
          endTimestamp_ = null;
          onChanged();
        } else {
          endTimestamp_ = null;
          endTimestampBuilder_ = null;
        }

        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() {
        
        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 {
        return new SubsDescriptor(input, extensionRegistry);
      }
    };

    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();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private SubscriptionID(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              context.ContextOuterClass.Uuid.Builder subBuilder = null;
              if (subsId_ != null) {
                subBuilder = subsId_.toBuilder();
              }
              subsId_ = input.readMessage(context.ContextOuterClass.Uuid.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(subsId_);
                subsId_ = subBuilder.buildPartial();
              }

              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    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 getSubsId();
    }

    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());
      }
      unknownFields.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 += unknownFields.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 (!unknownFields.equals(other.unknownFields)) 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) + unknownFields.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() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (subsIdBuilder_ == null) {
          subsId_ = null;
        } else {
          subsId_ = null;
          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 (subsIdBuilder_ == null) {
          result.subsId_ = subsId_;
        } else {
          result.subsId_ = subsIdBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @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.unknownFields);
        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 {
        monitoring.Monitoring.SubscriptionID parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (monitoring.Monitoring.SubscriptionID) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      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 subsIdBuilder_ != null || subsId_ != null;
      }
      /**
       * <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;
          onChanged();
        } else {
          subsIdBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.context.Uuid subs_id = 1;</code>
       */
      public Builder setSubsId(
          context.ContextOuterClass.Uuid.Builder builderForValue) {
        if (subsIdBuilder_ == null) {
          subsId_ = builderForValue.build();
          onChanged();
        } else {
          subsIdBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.context.Uuid subs_id = 1;</code>
       */
      public Builder mergeSubsId(context.ContextOuterClass.Uuid value) {
        if (subsIdBuilder_ == null) {
          if (subsId_ != null) {
            subsId_ =
              context.ContextOuterClass.Uuid.newBuilder(subsId_).mergeFrom(value).buildPartial();
          } else {
            subsId_ = value;
          }
          onChanged();
        } else {
          subsIdBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.context.Uuid subs_id = 1;</code>
       */
      public Builder clearSubsId() {
        if (subsIdBuilder_ == null) {
          subsId_ = null;
          onChanged();
        } else {
          subsId_ = null;
          subsIdBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.context.Uuid subs_id = 1;</code>
       */
      public context.ContextOuterClass.Uuid.Builder getSubsIdBuilder() {
        
        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 {
        return new SubscriptionID(input, extensionRegistry);
      }
    };

    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();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private SubsResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              monitoring.Monitoring.SubscriptionID.Builder subBuilder = null;
              if (subsId_ != null) {
                subBuilder = subsId_.toBuilder();
              }
              subsId_ = input.readMessage(monitoring.Monitoring.SubscriptionID.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(subsId_);
                subsId_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {
              monitoring.Monitoring.KpiList.Builder subBuilder = null;
              if (kpiList_ != null) {
                subBuilder = kpiList_.toBuilder();
              }
              kpiList_ = input.readMessage(monitoring.Monitoring.KpiList.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(kpiList_);
                kpiList_ = subBuilder.buildPartial();
              }

              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    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 getSubsId();
    }

    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 getKpiList();
    }

    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());
      }
      unknownFields.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 += unknownFields.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 (!unknownFields.equals(other.unknownFields)) 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) + unknownFields.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() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (subsIdBuilder_ == null) {
          subsId_ = null;
        } else {
          subsId_ = null;
          subsIdBuilder_ = null;
        }
        if (kpiListBuilder_ == null) {
          kpiList_ = null;
        } else {
          kpiList_ = null;
          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 (subsIdBuilder_ == null) {
          result.subsId_ = subsId_;
        } else {
          result.subsId_ = subsIdBuilder_.build();
        }
        if (kpiListBuilder_ == null) {
          result.kpiList_ = kpiList_;
        } else {
          result.kpiList_ = kpiListBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @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.unknownFields);
        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 {
        monitoring.Monitoring.SubsResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (monitoring.Monitoring.SubsResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      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 subsIdBuilder_ != null || subsId_ != null;
      }
      /**
       * <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;
          onChanged();
        } else {
          subsIdBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.monitoring.SubscriptionID subs_id = 1;</code>
       */
      public Builder setSubsId(
          monitoring.Monitoring.SubscriptionID.Builder builderForValue) {
        if (subsIdBuilder_ == null) {
          subsId_ = builderForValue.build();
          onChanged();
        } else {
          subsIdBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.monitoring.SubscriptionID subs_id = 1;</code>
       */
      public Builder mergeSubsId(monitoring.Monitoring.SubscriptionID value) {
        if (subsIdBuilder_ == null) {
          if (subsId_ != null) {
            subsId_ =
              monitoring.Monitoring.SubscriptionID.newBuilder(subsId_).mergeFrom(value).buildPartial();
          } else {
            subsId_ = value;
          }
          onChanged();
        } else {
          subsIdBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.monitoring.SubscriptionID subs_id = 1;</code>
       */
      public Builder clearSubsId() {
        if (subsIdBuilder_ == null) {
          subsId_ = null;
          onChanged();
        } else {
          subsId_ = null;
          subsIdBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.monitoring.SubscriptionID subs_id = 1;</code>
       */
      public monitoring.Monitoring.SubscriptionID.Builder getSubsIdBuilder() {
        
        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 kpiListBuilder_ != null || kpiList_ != null;
      }
      /**
       * <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;
          onChanged();
        } else {
          kpiListBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.monitoring.KpiList kpi_list = 2;</code>
       */
      public Builder setKpiList(
          monitoring.Monitoring.KpiList.Builder builderForValue) {
        if (kpiListBuilder_ == null) {
          kpiList_ = builderForValue.build();
          onChanged();
        } else {
          kpiListBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.monitoring.KpiList kpi_list = 2;</code>
       */
      public Builder mergeKpiList(monitoring.Monitoring.KpiList value) {
        if (kpiListBuilder_ == null) {
          if (kpiList_ != null) {
            kpiList_ =
              monitoring.Monitoring.KpiList.newBuilder(kpiList_).mergeFrom(value).buildPartial();
          } else {
            kpiList_ = value;
          }
          onChanged();
        } else {
          kpiListBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.monitoring.KpiList kpi_list = 2;</code>
       */
      public Builder clearKpiList() {
        if (kpiListBuilder_ == null) {
          kpiList_ = null;
          onChanged();
        } else {
          kpiList_ = null;
          kpiListBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.monitoring.KpiList kpi_list = 2;</code>
       */
      public monitoring.Monitoring.KpiList.Builder getKpiListBuilder() {
        
        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 {
        return new SubsResponse(input, extensionRegistry);
      }
    };

    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();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private SubsList(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                subsDescriptor_ = new java.util.ArrayList<monitoring.Monitoring.SubsDescriptor>();
                mutable_bitField0_ |= 0x00000001;
              }
              subsDescriptor_.add(
                  input.readMessage(monitoring.Monitoring.SubsDescriptor.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          subsDescriptor_ = java.util.Collections.unmodifiableList(subsDescriptor_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    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;
    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));
      }
      unknownFields.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 += unknownFields.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 (!unknownFields.equals(other.unknownFields)) 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) + unknownFields.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() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getSubsDescriptorFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (subsDescriptorBuilder_ == null) {
          subsDescriptor_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          subsDescriptorBuilder_.clear();
        }
        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);
        int from_bitField0_ = bitField0_;
        if (subsDescriptorBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            subsDescriptor_ = java.util.Collections.unmodifiableList(subsDescriptor_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.subsDescriptor_ = subsDescriptor_;
        } else {
          result.subsDescriptor_ = subsDescriptorBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @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.unknownFields);
        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 {
        monitoring.Monitoring.SubsList parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (monitoring.Monitoring.SubsList) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        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 {
        return new SubsList(input, extensionRegistry);
      }
    };

    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();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private AlarmDescriptor(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              monitoring.Monitoring.AlarmID.Builder subBuilder = null;
              if (alarmId_ != null) {
                subBuilder = alarmId_.toBuilder();
              }
              alarmId_ = input.readMessage(monitoring.Monitoring.AlarmID.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(alarmId_);
                alarmId_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();

              alarmDescription_ = s;
              break;
            }
            case 26: {
              java.lang.String s = input.readStringRequireUtf8();

              name_ = s;
              break;
            }
            case 34: {
              monitoring.Monitoring.KpiId.Builder subBuilder = null;
              if (kpiId_ != null) {
                subBuilder = kpiId_.toBuilder();
              }
              kpiId_ = input.readMessage(monitoring.Monitoring.KpiId.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(kpiId_);
                kpiId_ = subBuilder.buildPartial();
              }

              break;
            }
            case 42: {
              monitoring.Monitoring.KpiValueRange.Builder subBuilder = null;
              if (kpiValueRange_ != null) {
                subBuilder = kpiValueRange_.toBuilder();
              }
              kpiValueRange_ = input.readMessage(monitoring.Monitoring.KpiValueRange.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(kpiValueRange_);
                kpiValueRange_ = subBuilder.buildPartial();
              }

              break;
            }
            case 50: {
              context.ContextOuterClass.Timestamp.Builder subBuilder = null;
              if (timestamp_ != null) {
                subBuilder = timestamp_.toBuilder();
              }
              timestamp_ = input.readMessage(context.ContextOuterClass.Timestamp.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(timestamp_);
                timestamp_ = subBuilder.buildPartial();
              }

              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    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 getAlarmId();
    }

    public static final int ALARM_DESCRIPTION_FIELD_NUMBER = 2;
    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;
    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 getKpiId();
    }

    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 getKpiValueRange();
    }

    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 getTimestamp();
    }

    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 (!getAlarmDescriptionBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, alarmDescription_);
      }
      if (!getNameBytes().isEmpty()) {
        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());
      }
      unknownFields.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 (!getAlarmDescriptionBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, alarmDescription_);
      }
      if (!getNameBytes().isEmpty()) {
        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 += unknownFields.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 (!unknownFields.equals(other.unknownFields)) 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) + unknownFields.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() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (alarmIdBuilder_ == null) {
          alarmId_ = null;
        } else {
          alarmId_ = null;
          alarmIdBuilder_ = null;
        }
        alarmDescription_ = "";

        name_ = "";

        if (kpiIdBuilder_ == null) {
          kpiId_ = null;
        } else {
          kpiId_ = null;
          kpiIdBuilder_ = null;
        }
        if (kpiValueRangeBuilder_ == null) {
          kpiValueRange_ = null;
        } else {
          kpiValueRange_ = null;
          kpiValueRangeBuilder_ = null;
        }
        if (timestampBuilder_ == null) {
          timestamp_ = null;
        } else {
          timestamp_ = null;
          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 (alarmIdBuilder_ == null) {
          result.alarmId_ = alarmId_;
        } else {
          result.alarmId_ = alarmIdBuilder_.build();
        }
        result.alarmDescription_ = alarmDescription_;
        result.name_ = name_;
        if (kpiIdBuilder_ == null) {
          result.kpiId_ = kpiId_;
        } else {
          result.kpiId_ = kpiIdBuilder_.build();
        }
        if (kpiValueRangeBuilder_ == null) {
          result.kpiValueRange_ = kpiValueRange_;
        } else {
          result.kpiValueRange_ = kpiValueRangeBuilder_.build();
        }
        if (timestampBuilder_ == null) {
          result.timestamp_ = timestamp_;
        } else {
          result.timestamp_ = timestampBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @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_;
          onChanged();
        }
        if (!other.getName().isEmpty()) {
          name_ = other.name_;
          onChanged();
        }
        if (other.hasKpiId()) {
          mergeKpiId(other.getKpiId());
        }
        if (other.hasKpiValueRange()) {
          mergeKpiValueRange(other.getKpiValueRange());
        }
        if (other.hasTimestamp()) {
          mergeTimestamp(other.getTimestamp());
        }
        this.mergeUnknownFields(other.unknownFields);
        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 {
        monitoring.Monitoring.AlarmDescriptor parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (monitoring.Monitoring.AlarmDescriptor) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      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 alarmIdBuilder_ != null || alarmId_ != null;
      }
      /**
       * <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;
          onChanged();
        } else {
          alarmIdBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.monitoring.AlarmID alarm_id = 1;</code>
       */
      public Builder setAlarmId(
          monitoring.Monitoring.AlarmID.Builder builderForValue) {
        if (alarmIdBuilder_ == null) {
          alarmId_ = builderForValue.build();
          onChanged();
        } else {
          alarmIdBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.monitoring.AlarmID alarm_id = 1;</code>
       */
      public Builder mergeAlarmId(monitoring.Monitoring.AlarmID value) {
        if (alarmIdBuilder_ == null) {
          if (alarmId_ != null) {
            alarmId_ =
              monitoring.Monitoring.AlarmID.newBuilder(alarmId_).mergeFrom(value).buildPartial();
          } else {
            alarmId_ = value;
          }
          onChanged();
        } else {
          alarmIdBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.monitoring.AlarmID alarm_id = 1;</code>
       */
      public Builder clearAlarmId() {
        if (alarmIdBuilder_ == null) {
          alarmId_ = null;
          onChanged();
        } else {
          alarmId_ = null;
          alarmIdBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.monitoring.AlarmID alarm_id = 1;</code>
       */
      public monitoring.Monitoring.AlarmID.Builder getAlarmIdBuilder() {
        
        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;
        onChanged();
        return this;
      }
      /**
       * <code>string alarm_description = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearAlarmDescription() {
        
        alarmDescription_ = getDefaultInstance().getAlarmDescription();
        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;
        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;
        onChanged();
        return this;
      }
      /**
       * <code>string name = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearName() {
        
        name_ = getDefaultInstance().getName();
        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;
        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 kpiIdBuilder_ != null || kpiId_ != null;
      }
      /**
       * <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;
          onChanged();
        } else {
          kpiIdBuilder_.setMessage(value);
        }

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

        return this;
      }
      /**
       * <code>.monitoring.KpiId kpi_id = 4;</code>
       */
      public Builder mergeKpiId(monitoring.Monitoring.KpiId value) {
        if (kpiIdBuilder_ == null) {
          if (kpiId_ != null) {
            kpiId_ =
              monitoring.Monitoring.KpiId.newBuilder(kpiId_).mergeFrom(value).buildPartial();
          } else {
            kpiId_ = value;
          }
          onChanged();
        } else {
          kpiIdBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.monitoring.KpiId kpi_id = 4;</code>
       */
      public Builder clearKpiId() {
        if (kpiIdBuilder_ == null) {
          kpiId_ = null;
          onChanged();
        } else {
          kpiId_ = null;
          kpiIdBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.monitoring.KpiId kpi_id = 4;</code>
       */
      public monitoring.Monitoring.KpiId.Builder getKpiIdBuilder() {
        
        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 kpiValueRangeBuilder_ != null || kpiValueRange_ != null;
      }
      /**
       * <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;
          onChanged();
        } else {
          kpiValueRangeBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.monitoring.KpiValueRange kpi_value_range = 5;</code>
       */
      public Builder setKpiValueRange(
          monitoring.Monitoring.KpiValueRange.Builder builderForValue) {
        if (kpiValueRangeBuilder_ == null) {
          kpiValueRange_ = builderForValue.build();
          onChanged();
        } else {
          kpiValueRangeBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.monitoring.KpiValueRange kpi_value_range = 5;</code>
       */
      public Builder mergeKpiValueRange(monitoring.Monitoring.KpiValueRange value) {
        if (kpiValueRangeBuilder_ == null) {
          if (kpiValueRange_ != null) {
            kpiValueRange_ =
              monitoring.Monitoring.KpiValueRange.newBuilder(kpiValueRange_).mergeFrom(value).buildPartial();
          } else {
            kpiValueRange_ = value;
          }
          onChanged();
        } else {
          kpiValueRangeBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.monitoring.KpiValueRange kpi_value_range = 5;</code>
       */
      public Builder clearKpiValueRange() {
        if (kpiValueRangeBuilder_ == null) {
          kpiValueRange_ = null;
          onChanged();
        } else {
          kpiValueRange_ = null;
          kpiValueRangeBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.monitoring.KpiValueRange kpi_value_range = 5;</code>
       */
      public monitoring.Monitoring.KpiValueRange.Builder getKpiValueRangeBuilder() {
        
        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 timestampBuilder_ != null || timestamp_ != null;
      }
      /**
       * <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;
          onChanged();
        } else {
          timestampBuilder_.setMessage(value);
        }

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

        return this;
      }
      /**
       * <code>.context.Timestamp timestamp = 6;</code>
       */
      public Builder mergeTimestamp(context.ContextOuterClass.Timestamp value) {
        if (timestampBuilder_ == null) {
          if (timestamp_ != null) {
            timestamp_ =
              context.ContextOuterClass.Timestamp.newBuilder(timestamp_).mergeFrom(value).buildPartial();
          } else {
            timestamp_ = value;
          }
          onChanged();
        } else {
          timestampBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.context.Timestamp timestamp = 6;</code>
       */
      public Builder clearTimestamp() {
        if (timestampBuilder_ == null) {
          timestamp_ = null;
          onChanged();
        } else {
          timestamp_ = null;
          timestampBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.context.Timestamp timestamp = 6;</code>
       */
      public context.ContextOuterClass.Timestamp.Builder getTimestampBuilder() {
        
        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 {
        return new AlarmDescriptor(input, extensionRegistry);
      }
    };

    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();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private AlarmID(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              context.ContextOuterClass.Uuid.Builder subBuilder = null;
              if (alarmId_ != null) {
                subBuilder = alarmId_.toBuilder();
              }
              alarmId_ = input.readMessage(context.ContextOuterClass.Uuid.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(alarmId_);
                alarmId_ = subBuilder.buildPartial();
              }

              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    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 getAlarmId();
    }

    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());
      }
      unknownFields.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 += unknownFields.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 (!unknownFields.equals(other.unknownFields)) 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) + unknownFields.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() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (alarmIdBuilder_ == null) {
          alarmId_ = null;
        } else {
          alarmId_ = null;
          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 (alarmIdBuilder_ == null) {
          result.alarmId_ = alarmId_;
        } else {
          result.alarmId_ = alarmIdBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @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.unknownFields);
        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 {
        monitoring.Monitoring.AlarmID parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (monitoring.Monitoring.AlarmID) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      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 alarmIdBuilder_ != null || alarmId_ != null;
      }
      /**
       * <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;
          onChanged();
        } else {
          alarmIdBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.context.Uuid alarm_id = 1;</code>
       */
      public Builder setAlarmId(
          context.ContextOuterClass.Uuid.Builder builderForValue) {
        if (alarmIdBuilder_ == null) {
          alarmId_ = builderForValue.build();
          onChanged();
        } else {
          alarmIdBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.context.Uuid alarm_id = 1;</code>
       */
      public Builder mergeAlarmId(context.ContextOuterClass.Uuid value) {
        if (alarmIdBuilder_ == null) {
          if (alarmId_ != null) {
            alarmId_ =
              context.ContextOuterClass.Uuid.newBuilder(alarmId_).mergeFrom(value).buildPartial();
          } else {
            alarmId_ = value;
          }
          onChanged();
        } else {
          alarmIdBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.context.Uuid alarm_id = 1;</code>
       */
      public Builder clearAlarmId() {
        if (alarmIdBuilder_ == null) {
          alarmId_ = null;
          onChanged();
        } else {
          alarmId_ = null;
          alarmIdBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.context.Uuid alarm_id = 1;</code>
       */
      public context.ContextOuterClass.Uuid.Builder getAlarmIdBuilder() {
        
        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 {
        return new AlarmID(input, extensionRegistry);
      }
    };

    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();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private AlarmSubscription(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              monitoring.Monitoring.AlarmID.Builder subBuilder = null;
              if (alarmId_ != null) {
                subBuilder = alarmId_.toBuilder();
              }
              alarmId_ = input.readMessage(monitoring.Monitoring.AlarmID.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(alarmId_);
                alarmId_ = subBuilder.buildPartial();
              }

              break;
            }
            case 21: {

              subscriptionTimeoutS_ = input.readFloat();
              break;
            }
            case 29: {

              subscriptionFrequencyMs_ = input.readFloat();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    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 getAlarmId();
    }

    public static final int SUBSCRIPTION_TIMEOUT_S_FIELD_NUMBER = 2;
    private float subscriptionTimeoutS_;
    /**
     * <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_;
    /**
     * <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 (subscriptionTimeoutS_ != 0F) {
        output.writeFloat(2, subscriptionTimeoutS_);
      }
      if (subscriptionFrequencyMs_ != 0F) {
        output.writeFloat(3, subscriptionFrequencyMs_);
      }
      unknownFields.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 (subscriptionTimeoutS_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(2, subscriptionTimeoutS_);
      }
      if (subscriptionFrequencyMs_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(3, subscriptionFrequencyMs_);
      }
      size += unknownFields.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 (!unknownFields.equals(other.unknownFields)) 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) + unknownFields.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() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (alarmIdBuilder_ == null) {
          alarmId_ = null;
        } else {
          alarmId_ = null;
          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 (alarmIdBuilder_ == null) {
          result.alarmId_ = alarmId_;
        } else {
          result.alarmId_ = alarmIdBuilder_.build();
        }
        result.subscriptionTimeoutS_ = subscriptionTimeoutS_;
        result.subscriptionFrequencyMs_ = subscriptionFrequencyMs_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @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.unknownFields);
        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 {
        monitoring.Monitoring.AlarmSubscription parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (monitoring.Monitoring.AlarmSubscription) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      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 alarmIdBuilder_ != null || alarmId_ != null;
      }
      /**
       * <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;
          onChanged();
        } else {
          alarmIdBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.monitoring.AlarmID alarm_id = 1;</code>
       */
      public Builder setAlarmId(
          monitoring.Monitoring.AlarmID.Builder builderForValue) {
        if (alarmIdBuilder_ == null) {
          alarmId_ = builderForValue.build();
          onChanged();
        } else {
          alarmIdBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.monitoring.AlarmID alarm_id = 1;</code>
       */
      public Builder mergeAlarmId(monitoring.Monitoring.AlarmID value) {
        if (alarmIdBuilder_ == null) {
          if (alarmId_ != null) {
            alarmId_ =
              monitoring.Monitoring.AlarmID.newBuilder(alarmId_).mergeFrom(value).buildPartial();
          } else {
            alarmId_ = value;
          }
          onChanged();
        } else {
          alarmIdBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.monitoring.AlarmID alarm_id = 1;</code>
       */
      public Builder clearAlarmId() {
        if (alarmIdBuilder_ == null) {
          alarmId_ = null;
          onChanged();
        } else {
          alarmId_ = null;
          alarmIdBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.monitoring.AlarmID alarm_id = 1;</code>
       */
      public monitoring.Monitoring.AlarmID.Builder getAlarmIdBuilder() {
        
        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;
        onChanged();
        return this;
      }
      /**
       * <code>float subscription_timeout_s = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearSubscriptionTimeoutS() {
        
        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;
        onChanged();
        return this;
      }
      /**
       * <code>float subscription_frequency_ms = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearSubscriptionFrequencyMs() {
        
        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 {
        return new AlarmSubscription(input, extensionRegistry);
      }
    };

    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();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private AlarmResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              monitoring.Monitoring.AlarmID.Builder subBuilder = null;
              if (alarmId_ != null) {
                subBuilder = alarmId_.toBuilder();
              }
              alarmId_ = input.readMessage(monitoring.Monitoring.AlarmID.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(alarmId_);
                alarmId_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();

              text_ = s;
              break;
            }
            case 26: {
              monitoring.Monitoring.KpiList.Builder subBuilder = null;
              if (kpiList_ != null) {
                subBuilder = kpiList_.toBuilder();
              }
              kpiList_ = input.readMessage(monitoring.Monitoring.KpiList.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(kpiList_);
                kpiList_ = subBuilder.buildPartial();
              }

              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    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 getAlarmId();
    }

    public static final int TEXT_FIELD_NUMBER = 2;
    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 getKpiList();
    }

    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 (!getTextBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, text_);
      }
      if (kpiList_ != null) {
        output.writeMessage(3, getKpiList());
      }
      unknownFields.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 (!getTextBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, text_);
      }
      if (kpiList_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getKpiList());
      }
      size += unknownFields.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 (!unknownFields.equals(other.unknownFields)) 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) + unknownFields.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() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (alarmIdBuilder_ == null) {
          alarmId_ = null;
        } else {
          alarmId_ = null;
          alarmIdBuilder_ = null;
        }
        text_ = "";

        if (kpiListBuilder_ == null) {
          kpiList_ = null;
        } else {
          kpiList_ = null;
          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 (alarmIdBuilder_ == null) {
          result.alarmId_ = alarmId_;
        } else {
          result.alarmId_ = alarmIdBuilder_.build();
        }
        result.text_ = text_;
        if (kpiListBuilder_ == null) {
          result.kpiList_ = kpiList_;
        } else {
          result.kpiList_ = kpiListBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @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_;
          onChanged();
        }
        if (other.hasKpiList()) {
          mergeKpiList(other.getKpiList());
        }
        this.mergeUnknownFields(other.unknownFields);
        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 {
        monitoring.Monitoring.AlarmResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (monitoring.Monitoring.AlarmResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      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 alarmIdBuilder_ != null || alarmId_ != null;
      }
      /**
       * <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;
          onChanged();
        } else {
          alarmIdBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.monitoring.AlarmID alarm_id = 1;</code>
       */
      public Builder setAlarmId(
          monitoring.Monitoring.AlarmID.Builder builderForValue) {
        if (alarmIdBuilder_ == null) {
          alarmId_ = builderForValue.build();
          onChanged();
        } else {
          alarmIdBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.monitoring.AlarmID alarm_id = 1;</code>
       */
      public Builder mergeAlarmId(monitoring.Monitoring.AlarmID value) {
        if (alarmIdBuilder_ == null) {
          if (alarmId_ != null) {
            alarmId_ =
              monitoring.Monitoring.AlarmID.newBuilder(alarmId_).mergeFrom(value).buildPartial();
          } else {
            alarmId_ = value;
          }
          onChanged();
        } else {
          alarmIdBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.monitoring.AlarmID alarm_id = 1;</code>
       */
      public Builder clearAlarmId() {
        if (alarmIdBuilder_ == null) {
          alarmId_ = null;
          onChanged();
        } else {
          alarmId_ = null;
          alarmIdBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.monitoring.AlarmID alarm_id = 1;</code>
       */
      public monitoring.Monitoring.AlarmID.Builder getAlarmIdBuilder() {
        
        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;
        onChanged();
        return this;
      }
      /**
       * <code>string text = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearText() {
        
        text_ = getDefaultInstance().getText();
        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;
        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 kpiListBuilder_ != null || kpiList_ != null;
      }
      /**
       * <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;
          onChanged();
        } else {
          kpiListBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.monitoring.KpiList kpi_list = 3;</code>
       */
      public Builder setKpiList(
          monitoring.Monitoring.KpiList.Builder builderForValue) {
        if (kpiListBuilder_ == null) {
          kpiList_ = builderForValue.build();
          onChanged();
        } else {
          kpiListBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.monitoring.KpiList kpi_list = 3;</code>
       */
      public Builder mergeKpiList(monitoring.Monitoring.KpiList value) {
        if (kpiListBuilder_ == null) {
          if (kpiList_ != null) {
            kpiList_ =
              monitoring.Monitoring.KpiList.newBuilder(kpiList_).mergeFrom(value).buildPartial();
          } else {
            kpiList_ = value;
          }
          onChanged();
        } else {
          kpiListBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.monitoring.KpiList kpi_list = 3;</code>
       */
      public Builder clearKpiList() {
        if (kpiListBuilder_ == null) {
          kpiList_ = null;
          onChanged();
        } else {
          kpiList_ = null;
          kpiListBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.monitoring.KpiList kpi_list = 3;</code>
       */
      public monitoring.Monitoring.KpiList.Builder getKpiListBuilder() {
        
        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 {
        return new AlarmResponse(input, extensionRegistry);
      }
    };

    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();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private AlarmList(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                alarmDescriptor_ = new java.util.ArrayList<monitoring.Monitoring.AlarmDescriptor>();
                mutable_bitField0_ |= 0x00000001;
              }
              alarmDescriptor_.add(
                  input.readMessage(monitoring.Monitoring.AlarmDescriptor.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          alarmDescriptor_ = java.util.Collections.unmodifiableList(alarmDescriptor_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    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;
    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));
      }
      unknownFields.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 += unknownFields.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 (!unknownFields.equals(other.unknownFields)) 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) + unknownFields.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() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getAlarmDescriptorFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (alarmDescriptorBuilder_ == null) {
          alarmDescriptor_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          alarmDescriptorBuilder_.clear();
        }
        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);
        int from_bitField0_ = bitField0_;
        if (alarmDescriptorBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            alarmDescriptor_ = java.util.Collections.unmodifiableList(alarmDescriptor_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.alarmDescriptor_ = alarmDescriptor_;
        } else {
          result.alarmDescriptor_ = alarmDescriptorBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @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.unknownFields);
        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 {
        monitoring.Monitoring.AlarmList parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (monitoring.Monitoring.AlarmList) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        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 {
        return new AlarmList(input, extensionRegistry);
      }
    };

    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_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\"\311\002\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\"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\"\323\001\n\010KpiQ" +
      "uery\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\022\026\n\016last_n_samples\030\004 \001(\r\022+\n" +
      "\017start_timestamp\030\005 \001(\0132\022.context.Timesta" +
      "mp\022)\n\rend_timestamp\030\006 \001(\0132\022.context.Time" +
      "stamp\"&\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.monitorin" +
      "g.KpiId\022%\n\ttimestamp\030\002 \001(\0132\022.context.Tim" +
      "estamp\022\'\n\tkpi_value\030\003 \001(\0132\024.monitoring.K" +
      "piValue\"\250\001\n\rKpiValueRange\022)\n\013kpiMinValue" +
      "\030\001 \001(\0132\024.monitoring.KpiValue\022)\n\013kpiMaxVa" +
      "lue\030\002 \001(\0132\024.monitoring.KpiValue\022\017\n\007inRan" +
      "ge\030\003 \001(\010\022\027\n\017includeMinValue\030\004 \001(\010\022\027\n\017inc" +
      "ludeMaxValue\030\005 \001(\010\"\241\001\n\010KpiValue\022\022\n\010int32" +
      "Val\030\001 \001(\005H\000\022\023\n\tuint32Val\030\002 \001(\rH\000\022\022\n\010int6" +
      "4Val\030\003 \001(\003H\000\022\023\n\tuint64Val\030\004 \001(\004H\000\022\022\n\010flo" +
      "atVal\030\005 \001(\002H\000\022\023\n\tstringVal\030\006 \001(\tH\000\022\021\n\007bo" +
      "olVal\030\007 \001(\010H\000B\007\n\005value\"\'\n\007KpiList\022\034\n\003kpi" +
      "\030\001 \003(\0132\017.monitoring.Kpi\"K\n\021KpiDescriptor" +
      "List\0226\n\023kpi_descriptor_list\030\001 \003(\0132\031.moni" +
      "toring.KpiDescriptor\"\362\001\n\016SubsDescriptor\022" +
      "+\n\007subs_id\030\001 \001(\0132\032.monitoring.Subscripti" +
      "onID\022!\n\006kpi_id\030\002 \001(\0132\021.monitoring.KpiId\022" +
      "\033\n\023sampling_duration_s\030\003 \001(\002\022\033\n\023sampling" +
      "_interval_s\030\004 \001(\002\022+\n\017start_timestamp\030\005 \001" +
      "(\0132\022.context.Timestamp\022)\n\rend_timestamp\030" +
      "\006 \001(\0132\022.context.Timestamp\"0\n\016Subscriptio" +
      "nID\022\036\n\007subs_id\030\001 \001(\0132\r.context.Uuid\"b\n\014S" +
      "ubsResponse\022+\n\007subs_id\030\001 \001(\0132\032.monitorin" +
      "g.SubscriptionID\022%\n\010kpi_list\030\002 \001(\0132\023.mon" +
      "itoring.KpiList\"?\n\010SubsList\0223\n\017subs_desc" +
      "riptor\030\001 \003(\0132\032.monitoring.SubsDescriptor" +
      "\"\337\001\n\017AlarmDescriptor\022%\n\010alarm_id\030\001 \001(\0132\023" +
      ".monitoring.AlarmID\022\031\n\021alarm_description" +
      "\030\002 \001(\t\022\014\n\004name\030\003 \001(\t\022!\n\006kpi_id\030\004 \001(\0132\021.m" +
      "onitoring.KpiId\0222\n\017kpi_value_range\030\005 \001(\013" +
      "2\031.monitoring.KpiValueRange\022%\n\ttimestamp" +
      "\030\006 \001(\0132\022.context.Timestamp\"*\n\007AlarmID\022\037\n" +
      "\010alarm_id\030\001 \001(\0132\r.context.Uuid\"}\n\021AlarmS" +
      "ubscription\022%\n\010alarm_id\030\001 \001(\0132\023.monitori" +
      "ng.AlarmID\022\036\n\026subscription_timeout_s\030\002 \001" +
      "(\002\022!\n\031subscription_frequency_ms\030\003 \001(\002\"k\n" +
      "\rAlarmResponse\022%\n\010alarm_id\030\001 \001(\0132\023.monit" +
      "oring.AlarmID\022\014\n\004text\030\002 \001(\t\022%\n\010kpi_list\030" +
      "\003 \001(\0132\023.monitoring.KpiList\"B\n\tAlarmList\022" +
      "5\n\020alarm_descriptor\030\001 \003(\0132\033.monitoring.A" +
      "larmDescriptor2\230\t\n\021MonitoringService\0228\n\006" +
      "SetKpi\022\031.monitoring.KpiDescriptor\032\021.moni" +
      "toring.KpiId\"\000\0220\n\tDeleteKpi\022\021.monitoring" +
      ".KpiId\032\016.context.Empty\"\000\022B\n\020GetKpiDescri" +
      "ptor\022\021.monitoring.KpiId\032\031.monitoring.Kpi" +
      "Descriptor\"\000\022G\n\024GetKpiDescriptorList\022\016.c" +
      "ontext.Empty\032\035.monitoring.KpiDescriptorL" +
      "ist\"\000\022/\n\nIncludeKpi\022\017.monitoring.Kpi\032\016.c" +
      "ontext.Empty\"\000\022=\n\nMonitorKpi\022\035.monitorin" +
      "g.MonitorKpiRequest\032\016.context.Empty\"\000\022;\n" +
      "\014QueryKpiData\022\024.monitoring.KpiQuery\032\023.mo" +
      "nitoring.KpiList\"\000\022N\n\022SetKpiSubscription" +
      "\022\032.monitoring.SubsDescriptor\032\030.monitorin" +
      "g.SubsResponse\"\0000\001\022M\n\021GetSubsDescriptor\022" +
      "\032.monitoring.SubscriptionID\032\032.monitoring" +
      ".SubsDescriptor\"\000\022:\n\020GetSubscriptions\022\016." +
      "context.Empty\032\024.monitoring.SubsList\"\000\022B\n" +
      "\022DeleteSubscription\022\032.monitoring.Subscri" +
      "ptionID\032\016.context.Empty\"\000\022A\n\013SetKpiAlarm" +
      "\022\033.monitoring.AlarmDescriptor\032\023.monitori" +
      "ng.AlarmID\"\000\0224\n\tGetAlarms\022\016.context.Empt" +
      "y\032\025.monitoring.AlarmList\"\000\022H\n\022GetAlarmDe" +
      "scriptor\022\023.monitoring.AlarmID\032\033.monitori" +
      "ng.AlarmDescriptor\"\000\022V\n\026GetAlarmResponse" +
      "Stream\022\035.monitoring.AlarmSubscription\032\031." +
      "monitoring.AlarmResponse\"\0000\001\0224\n\013DeleteAl" +
      "arm\022\023.monitoring.AlarmID\032\016.context.Empty" +
      "\"\000\0226\n\014GetStreamKpi\022\021.monitoring.KpiId\032\017." +
      "monitoring.Kpi\"\0000\001\0225\n\rGetInstantKpi\022\021.mo" +
      "nitoring.KpiId\032\017.monitoring.Kpi\"\000b\006proto" +
      "3"
    };
    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", });
    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[] { "KpiId", "MonitoringWindowS", "SamplingRateS", "LastNSamples", "StartTimestamp", "EndTimestamp", });
    internal_static_monitoring_KpiId_descriptor =
      getDescriptor().getMessageTypes().get(3);
    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(4);
    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(5);
    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(6);
    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(7);
    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(8);
    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(9);
    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(10);
    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(11);
    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(12);
    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(13);
    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(14);
    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(15);
    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(16);
    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(17);
    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)
}
