// 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>string kpi_description = 1;</code>
     * @return The kpiDescription.
     */
    java.lang.String getKpiDescription();
    /**
     * <code>string kpi_description = 1;</code>
     * @return The bytes for kpiDescription.
     */
    com.google.protobuf.ByteString
        getKpiDescriptionBytes();

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

    /**
     * <code>.context.DeviceId device_id = 3;</code>
     * @return Whether the deviceId field is set.
     */
    boolean hasDeviceId();
    /**
     * <code>.context.DeviceId device_id = 3;</code>
     * @return The deviceId.
     */
    context.ContextOuterClass.DeviceId getDeviceId();
    /**
     * <code>.context.DeviceId device_id = 3;</code>
     */
    context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdOrBuilder();

    /**
     * <code>.context.EndPointId endpoint_id = 4;</code>
     * @return Whether the endpointId field is set.
     */
    boolean hasEndpointId();
    /**
     * <code>.context.EndPointId endpoint_id = 4;</code>
     * @return The endpointId.
     */
    context.ContextOuterClass.EndPointId getEndpointId();
    /**
     * <code>.context.EndPointId endpoint_id = 4;</code>
     */
    context.ContextOuterClass.EndPointIdOrBuilder getEndpointIdOrBuilder();

    /**
     * <code>.context.ServiceId service_id = 5;</code>
     * @return Whether the serviceId field is set.
     */
    boolean hasServiceId();
    /**
     * <code>.context.ServiceId service_id = 5;</code>
     * @return The serviceId.
     */
    context.ContextOuterClass.ServiceId getServiceId();
    /**
     * <code>.context.ServiceId service_id = 5;</code>
     */
    context.ContextOuterClass.ServiceIdOrBuilder getServiceIdOrBuilder();

    /**
     * <code>.context.SliceId slice_id = 6;</code>
     * @return Whether the sliceId field is set.
     */
    boolean hasSliceId();
    /**
     * <code>.context.SliceId slice_id = 6;</code>
     * @return The sliceId.
     */
    context.ContextOuterClass.SliceId getSliceId();
    /**
     * <code>.context.SliceId slice_id = 6;</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_ = "";
      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();
      }
      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: {
              java.lang.String s = input.readStringRequireUtf8();

              kpiDescription_ = s;
              break;
            }
            case 16: {
              int rawValue = input.readEnum();

              kpiSampleType_ = rawValue;
              break;
            }
            case 26: {
              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 34: {
              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 42: {
              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 50: {
              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 {
        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_DESCRIPTION_FIELD_NUMBER = 1;
    private volatile java.lang.Object kpiDescription_;
    /**
     * <code>string kpi_description = 1;</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 = 1;</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_SAMPLE_TYPE_FIELD_NUMBER = 2;
    private int kpiSampleType_;
    /**
     * <code>.kpi_sample_types.KpiSampleType kpi_sample_type = 2;</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 = 2;</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 = 3;
    private context.ContextOuterClass.DeviceId deviceId_;
    /**
     * <code>.context.DeviceId device_id = 3;</code>
     * @return Whether the deviceId field is set.
     */
    @java.lang.Override
    public boolean hasDeviceId() {
      return deviceId_ != null;
    }
    /**
     * <code>.context.DeviceId device_id = 3;</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 = 3;</code>
     */
    @java.lang.Override
    public context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdOrBuilder() {
      return getDeviceId();
    }

    public static final int ENDPOINT_ID_FIELD_NUMBER = 4;
    private context.ContextOuterClass.EndPointId endpointId_;
    /**
     * <code>.context.EndPointId endpoint_id = 4;</code>
     * @return Whether the endpointId field is set.
     */
    @java.lang.Override
    public boolean hasEndpointId() {
      return endpointId_ != null;
    }
    /**
     * <code>.context.EndPointId endpoint_id = 4;</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 = 4;</code>
     */
    @java.lang.Override
    public context.ContextOuterClass.EndPointIdOrBuilder getEndpointIdOrBuilder() {
      return getEndpointId();
    }

    public static final int SERVICE_ID_FIELD_NUMBER = 5;
    private context.ContextOuterClass.ServiceId serviceId_;
    /**
     * <code>.context.ServiceId service_id = 5;</code>
     * @return Whether the serviceId field is set.
     */
    @java.lang.Override
    public boolean hasServiceId() {
      return serviceId_ != null;
    }
    /**
     * <code>.context.ServiceId service_id = 5;</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 = 5;</code>
     */
    @java.lang.Override
    public context.ContextOuterClass.ServiceIdOrBuilder getServiceIdOrBuilder() {
      return getServiceId();
    }

    public static final int SLICE_ID_FIELD_NUMBER = 6;
    private context.ContextOuterClass.SliceId sliceId_;
    /**
     * <code>.context.SliceId slice_id = 6;</code>
     * @return Whether the sliceId field is set.
     */
    @java.lang.Override
    public boolean hasSliceId() {
      return sliceId_ != null;
    }
    /**
     * <code>.context.SliceId slice_id = 6;</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 = 6;</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 (!getKpiDescriptionBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, kpiDescription_);
      }
      if (kpiSampleType_ != kpi_sample_types.KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_UNKNOWN.getNumber()) {
        output.writeEnum(2, kpiSampleType_);
      }
      if (deviceId_ != null) {
        output.writeMessage(3, getDeviceId());
      }
      if (endpointId_ != null) {
        output.writeMessage(4, getEndpointId());
      }
      if (serviceId_ != null) {
        output.writeMessage(5, getServiceId());
      }
      if (sliceId_ != null) {
        output.writeMessage(6, getSliceId());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!getKpiDescriptionBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, kpiDescription_);
      }
      if (kpiSampleType_ != kpi_sample_types.KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_UNKNOWN.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, kpiSampleType_);
      }
      if (deviceId_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getDeviceId());
      }
      if (endpointId_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getEndpointId());
      }
      if (serviceId_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getServiceId());
      }
      if (sliceId_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, 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 (!getKpiDescription()
          .equals(other.getKpiDescription())) 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();
      hash = (37 * hash) + KPI_DESCRIPTION_FIELD_NUMBER;
      hash = (53 * hash) + getKpiDescription().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) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        kpiDescription_ = "";

        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);
        result.kpiDescription_ = kpiDescription_;
        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.getKpiDescription().isEmpty()) {
          kpiDescription_ = other.kpiDescription_;
          onChanged();
        }
        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 java.lang.Object kpiDescription_ = "";
      /**
       * <code>string kpi_description = 1;</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 = 1;</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 = 1;</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 = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearKpiDescription() {
        
        kpiDescription_ = getDefaultInstance().getKpiDescription();
        onChanged();
        return this;
      }
      /**
       * <code>string kpi_description = 1;</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 int kpiSampleType_ = 0;
      /**
       * <code>.kpi_sample_types.KpiSampleType kpi_sample_type = 2;</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 = 2;</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 = 2;</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 = 2;</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 = 2;</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 = 3;</code>
       * @return Whether the deviceId field is set.
       */
      public boolean hasDeviceId() {
        return deviceIdBuilder_ != null || deviceId_ != null;
      }
      /**
       * <code>.context.DeviceId device_id = 3;</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 = 3;</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 = 3;</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 = 3;</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 = 3;</code>
       */
      public Builder clearDeviceId() {
        if (deviceIdBuilder_ == null) {
          deviceId_ = null;
          onChanged();
        } else {
          deviceId_ = null;
          deviceIdBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.context.DeviceId device_id = 3;</code>
       */
      public context.ContextOuterClass.DeviceId.Builder getDeviceIdBuilder() {
        
        onChanged();
        return getDeviceIdFieldBuilder().getBuilder();
      }
      /**
       * <code>.context.DeviceId device_id = 3;</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 = 3;</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 = 4;</code>
       * @return Whether the endpointId field is set.
       */
      public boolean hasEndpointId() {
        return endpointIdBuilder_ != null || endpointId_ != null;
      }
      /**
       * <code>.context.EndPointId endpoint_id = 4;</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 = 4;</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 = 4;</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 = 4;</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 = 4;</code>
       */
      public Builder clearEndpointId() {
        if (endpointIdBuilder_ == null) {
          endpointId_ = null;
          onChanged();
        } else {
          endpointId_ = null;
          endpointIdBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.context.EndPointId endpoint_id = 4;</code>
       */
      public context.ContextOuterClass.EndPointId.Builder getEndpointIdBuilder() {
        
        onChanged();
        return getEndpointIdFieldBuilder().getBuilder();
      }
      /**
       * <code>.context.EndPointId endpoint_id = 4;</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 = 4;</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 = 5;</code>
       * @return Whether the serviceId field is set.
       */
      public boolean hasServiceId() {
        return serviceIdBuilder_ != null || serviceId_ != null;
      }
      /**
       * <code>.context.ServiceId service_id = 5;</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 = 5;</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 = 5;</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 = 5;</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 = 5;</code>
       */
      public Builder clearServiceId() {
        if (serviceIdBuilder_ == null) {
          serviceId_ = null;
          onChanged();
        } else {
          serviceId_ = null;
          serviceIdBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.context.ServiceId service_id = 5;</code>
       */
      public context.ContextOuterClass.ServiceId.Builder getServiceIdBuilder() {
        
        onChanged();
        return getServiceIdFieldBuilder().getBuilder();
      }
      /**
       * <code>.context.ServiceId service_id = 5;</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 = 5;</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 = 6;</code>
       * @return Whether the sliceId field is set.
       */
      public boolean hasSliceId() {
        return sliceIdBuilder_ != null || sliceId_ != null;
      }
      /**
       * <code>.context.SliceId slice_id = 6;</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 = 6;</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 = 6;</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 = 6;</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 = 6;</code>
       */
      public Builder clearSliceId() {
        if (sliceIdBuilder_ == null) {
          sliceId_ = null;
          onChanged();
        } else {
          sliceId_ = null;
          sliceIdBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.context.SliceId slice_id = 6;</code>
       */
      public context.ContextOuterClass.SliceId.Builder getSliceIdBuilder() {
        
        onChanged();
        return getSliceIdFieldBuilder().getBuilder();
      }
      /**
       * <code>.context.SliceId slice_id = 6;</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 = 6;</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 BundleKpiDescriptorOrBuilder extends
      // @@protoc_insertion_point(interface_extends:monitoring.BundleKpiDescriptor)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>string kpi_description = 1;</code>
     * @return The kpiDescription.
     */
    java.lang.String getKpiDescription();
    /**
     * <code>string kpi_description = 1;</code>
     * @return The bytes for kpiDescription.
     */
    com.google.protobuf.ByteString
        getKpiDescriptionBytes();

    /**
     * <code>repeated .monitoring.KpiId kpi_id_list = 2;</code>
     */
    java.util.List<monitoring.Monitoring.KpiId> 
        getKpiIdListList();
    /**
     * <code>repeated .monitoring.KpiId kpi_id_list = 2;</code>
     */
    monitoring.Monitoring.KpiId getKpiIdList(int index);
    /**
     * <code>repeated .monitoring.KpiId kpi_id_list = 2;</code>
     */
    int getKpiIdListCount();
    /**
     * <code>repeated .monitoring.KpiId kpi_id_list = 2;</code>
     */
    java.util.List<? extends monitoring.Monitoring.KpiIdOrBuilder> 
        getKpiIdListOrBuilderList();
    /**
     * <code>repeated .monitoring.KpiId kpi_id_list = 2;</code>
     */
    monitoring.Monitoring.KpiIdOrBuilder getKpiIdListOrBuilder(
        int index);

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

    /**
     * <code>.context.DeviceId device_id = 4;</code>
     * @return Whether the deviceId field is set.
     */
    boolean hasDeviceId();
    /**
     * <code>.context.DeviceId device_id = 4;</code>
     * @return The deviceId.
     */
    context.ContextOuterClass.DeviceId getDeviceId();
    /**
     * <code>.context.DeviceId device_id = 4;</code>
     */
    context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdOrBuilder();

    /**
     * <code>.context.EndPointId endpoint_id = 5;</code>
     * @return Whether the endpointId field is set.
     */
    boolean hasEndpointId();
    /**
     * <code>.context.EndPointId endpoint_id = 5;</code>
     * @return The endpointId.
     */
    context.ContextOuterClass.EndPointId getEndpointId();
    /**
     * <code>.context.EndPointId endpoint_id = 5;</code>
     */
    context.ContextOuterClass.EndPointIdOrBuilder getEndpointIdOrBuilder();

    /**
     * <code>.context.ServiceId service_id = 6;</code>
     * @return Whether the serviceId field is set.
     */
    boolean hasServiceId();
    /**
     * <code>.context.ServiceId service_id = 6;</code>
     * @return The serviceId.
     */
    context.ContextOuterClass.ServiceId getServiceId();
    /**
     * <code>.context.ServiceId service_id = 6;</code>
     */
    context.ContextOuterClass.ServiceIdOrBuilder getServiceIdOrBuilder();

    /**
     * <code>.context.SliceId slice_id = 7;</code>
     * @return Whether the sliceId field is set.
     */
    boolean hasSliceId();
    /**
     * <code>.context.SliceId slice_id = 7;</code>
     * @return The sliceId.
     */
    context.ContextOuterClass.SliceId getSliceId();
    /**
     * <code>.context.SliceId slice_id = 7;</code>
     */
    context.ContextOuterClass.SliceIdOrBuilder getSliceIdOrBuilder();
  }
  /**
   * Protobuf type {@code monitoring.BundleKpiDescriptor}
   */
  public static final class BundleKpiDescriptor extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:monitoring.BundleKpiDescriptor)
      BundleKpiDescriptorOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use BundleKpiDescriptor.newBuilder() to construct.
    private BundleKpiDescriptor(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private BundleKpiDescriptor() {
      kpiDescription_ = "";
      kpiIdList_ = java.util.Collections.emptyList();
      kpiSampleType_ = 0;
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private BundleKpiDescriptor(
        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: {
              java.lang.String s = input.readStringRequireUtf8();

              kpiDescription_ = s;
              break;
            }
            case 18: {
              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 24: {
              int rawValue = input.readEnum();

              kpiSampleType_ = rawValue;
              break;
            }
            case 34: {
              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 42: {
              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 50: {
              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 58: {
              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_BundleKpiDescriptor_descriptor;
    }

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

    public static final int KPI_DESCRIPTION_FIELD_NUMBER = 1;
    private volatile java.lang.Object kpiDescription_;
    /**
     * <code>string kpi_description = 1;</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 = 1;</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 = 2;
    private java.util.List<monitoring.Monitoring.KpiId> kpiIdList_;
    /**
     * <code>repeated .monitoring.KpiId kpi_id_list = 2;</code>
     */
    @java.lang.Override
    public java.util.List<monitoring.Monitoring.KpiId> getKpiIdListList() {
      return kpiIdList_;
    }
    /**
     * <code>repeated .monitoring.KpiId kpi_id_list = 2;</code>
     */
    @java.lang.Override
    public java.util.List<? extends monitoring.Monitoring.KpiIdOrBuilder> 
        getKpiIdListOrBuilderList() {
      return kpiIdList_;
    }
    /**
     * <code>repeated .monitoring.KpiId kpi_id_list = 2;</code>
     */
    @java.lang.Override
    public int getKpiIdListCount() {
      return kpiIdList_.size();
    }
    /**
     * <code>repeated .monitoring.KpiId kpi_id_list = 2;</code>
     */
    @java.lang.Override
    public monitoring.Monitoring.KpiId getKpiIdList(int index) {
      return kpiIdList_.get(index);
    }
    /**
     * <code>repeated .monitoring.KpiId kpi_id_list = 2;</code>
     */
    @java.lang.Override
    public monitoring.Monitoring.KpiIdOrBuilder getKpiIdListOrBuilder(
        int index) {
      return kpiIdList_.get(index);
    }

    public static final int KPI_SAMPLE_TYPE_FIELD_NUMBER = 3;
    private int kpiSampleType_;
    /**
     * <code>.kpi_sample_types.KpiSampleType kpi_sample_type = 3;</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 = 3;</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 = 4;
    private context.ContextOuterClass.DeviceId deviceId_;
    /**
     * <code>.context.DeviceId device_id = 4;</code>
     * @return Whether the deviceId field is set.
     */
    @java.lang.Override
    public boolean hasDeviceId() {
      return deviceId_ != null;
    }
    /**
     * <code>.context.DeviceId device_id = 4;</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 = 4;</code>
     */
    @java.lang.Override
    public context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdOrBuilder() {
      return getDeviceId();
    }

    public static final int ENDPOINT_ID_FIELD_NUMBER = 5;
    private context.ContextOuterClass.EndPointId endpointId_;
    /**
     * <code>.context.EndPointId endpoint_id = 5;</code>
     * @return Whether the endpointId field is set.
     */
    @java.lang.Override
    public boolean hasEndpointId() {
      return endpointId_ != null;
    }
    /**
     * <code>.context.EndPointId endpoint_id = 5;</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 = 5;</code>
     */
    @java.lang.Override
    public context.ContextOuterClass.EndPointIdOrBuilder getEndpointIdOrBuilder() {
      return getEndpointId();
    }

    public static final int SERVICE_ID_FIELD_NUMBER = 6;
    private context.ContextOuterClass.ServiceId serviceId_;
    /**
     * <code>.context.ServiceId service_id = 6;</code>
     * @return Whether the serviceId field is set.
     */
    @java.lang.Override
    public boolean hasServiceId() {
      return serviceId_ != null;
    }
    /**
     * <code>.context.ServiceId service_id = 6;</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 = 6;</code>
     */
    @java.lang.Override
    public context.ContextOuterClass.ServiceIdOrBuilder getServiceIdOrBuilder() {
      return getServiceId();
    }

    public static final int SLICE_ID_FIELD_NUMBER = 7;
    private context.ContextOuterClass.SliceId sliceId_;
    /**
     * <code>.context.SliceId slice_id = 7;</code>
     * @return Whether the sliceId field is set.
     */
    @java.lang.Override
    public boolean hasSliceId() {
      return sliceId_ != null;
    }
    /**
     * <code>.context.SliceId slice_id = 7;</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 = 7;</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 (!getKpiDescriptionBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, kpiDescription_);
      }
      for (int i = 0; i < kpiIdList_.size(); i++) {
        output.writeMessage(2, kpiIdList_.get(i));
      }
      if (kpiSampleType_ != kpi_sample_types.KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_UNKNOWN.getNumber()) {
        output.writeEnum(3, kpiSampleType_);
      }
      if (deviceId_ != null) {
        output.writeMessage(4, getDeviceId());
      }
      if (endpointId_ != null) {
        output.writeMessage(5, getEndpointId());
      }
      if (serviceId_ != null) {
        output.writeMessage(6, getServiceId());
      }
      if (sliceId_ != null) {
        output.writeMessage(7, getSliceId());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!getKpiDescriptionBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, kpiDescription_);
      }
      for (int i = 0; i < kpiIdList_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, kpiIdList_.get(i));
      }
      if (kpiSampleType_ != kpi_sample_types.KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_UNKNOWN.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, kpiSampleType_);
      }
      if (deviceId_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getDeviceId());
      }
      if (endpointId_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getEndpointId());
      }
      if (serviceId_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, getServiceId());
      }
      if (sliceId_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, 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.BundleKpiDescriptor)) {
        return super.equals(obj);
      }
      monitoring.Monitoring.BundleKpiDescriptor other = (monitoring.Monitoring.BundleKpiDescriptor) obj;

      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();
      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.BundleKpiDescriptor parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static monitoring.Monitoring.BundleKpiDescriptor parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static monitoring.Monitoring.BundleKpiDescriptor parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static monitoring.Monitoring.BundleKpiDescriptor 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.BundleKpiDescriptor parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static monitoring.Monitoring.BundleKpiDescriptor parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static monitoring.Monitoring.BundleKpiDescriptor parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static monitoring.Monitoring.BundleKpiDescriptor 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.BundleKpiDescriptor parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static monitoring.Monitoring.BundleKpiDescriptor 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.BundleKpiDescriptor parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static monitoring.Monitoring.BundleKpiDescriptor 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.BundleKpiDescriptor 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.BundleKpiDescriptor}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:monitoring.BundleKpiDescriptor)
        monitoring.Monitoring.BundleKpiDescriptorOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return monitoring.Monitoring.internal_static_monitoring_BundleKpiDescriptor_descriptor;
      }

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

      // Construct using monitoring.Monitoring.BundleKpiDescriptor.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();
        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_BundleKpiDescriptor_descriptor;
      }

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

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

      @java.lang.Override
      public monitoring.Monitoring.BundleKpiDescriptor buildPartial() {
        monitoring.Monitoring.BundleKpiDescriptor result = new monitoring.Monitoring.BundleKpiDescriptor(this);
        int from_bitField0_ = bitField0_;
        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.BundleKpiDescriptor) {
          return mergeFrom((monitoring.Monitoring.BundleKpiDescriptor)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(monitoring.Monitoring.BundleKpiDescriptor other) {
        if (other == monitoring.Monitoring.BundleKpiDescriptor.getDefaultInstance()) return this;
        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.BundleKpiDescriptor parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (monitoring.Monitoring.BundleKpiDescriptor) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object kpiDescription_ = "";
      /**
       * <code>string kpi_description = 1;</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 = 1;</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 = 1;</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 = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearKpiDescription() {
        
        kpiDescription_ = getDefaultInstance().getKpiDescription();
        onChanged();
        return this;
      }
      /**
       * <code>string kpi_description = 1;</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 = 2;</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 = 2;</code>
       */
      public int getKpiIdListCount() {
        if (kpiIdListBuilder_ == null) {
          return kpiIdList_.size();
        } else {
          return kpiIdListBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .monitoring.KpiId kpi_id_list = 2;</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 = 2;</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 = 2;</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 = 2;</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 = 2;</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 = 2;</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 = 2;</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 = 2;</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 = 2;</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 = 2;</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 = 2;</code>
       */
      public monitoring.Monitoring.KpiId.Builder getKpiIdListBuilder(
          int index) {
        return getKpiIdListFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .monitoring.KpiId kpi_id_list = 2;</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 = 2;</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 = 2;</code>
       */
      public monitoring.Monitoring.KpiId.Builder addKpiIdListBuilder() {
        return getKpiIdListFieldBuilder().addBuilder(
            monitoring.Monitoring.KpiId.getDefaultInstance());
      }
      /**
       * <code>repeated .monitoring.KpiId kpi_id_list = 2;</code>
       */
      public monitoring.Monitoring.KpiId.Builder addKpiIdListBuilder(
          int index) {
        return getKpiIdListFieldBuilder().addBuilder(
            index, monitoring.Monitoring.KpiId.getDefaultInstance());
      }
      /**
       * <code>repeated .monitoring.KpiId kpi_id_list = 2;</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 = 3;</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 = 3;</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 = 3;</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 = 3;</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 = 3;</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 = 4;</code>
       * @return Whether the deviceId field is set.
       */
      public boolean hasDeviceId() {
        return deviceIdBuilder_ != null || deviceId_ != null;
      }
      /**
       * <code>.context.DeviceId device_id = 4;</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 = 4;</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 = 4;</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 = 4;</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 = 4;</code>
       */
      public Builder clearDeviceId() {
        if (deviceIdBuilder_ == null) {
          deviceId_ = null;
          onChanged();
        } else {
          deviceId_ = null;
          deviceIdBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.context.DeviceId device_id = 4;</code>
       */
      public context.ContextOuterClass.DeviceId.Builder getDeviceIdBuilder() {
        
        onChanged();
        return getDeviceIdFieldBuilder().getBuilder();
      }
      /**
       * <code>.context.DeviceId device_id = 4;</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 = 4;</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 = 5;</code>
       * @return Whether the endpointId field is set.
       */
      public boolean hasEndpointId() {
        return endpointIdBuilder_ != null || endpointId_ != null;
      }
      /**
       * <code>.context.EndPointId endpoint_id = 5;</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 = 5;</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 = 5;</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 = 5;</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 = 5;</code>
       */
      public Builder clearEndpointId() {
        if (endpointIdBuilder_ == null) {
          endpointId_ = null;
          onChanged();
        } else {
          endpointId_ = null;
          endpointIdBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.context.EndPointId endpoint_id = 5;</code>
       */
      public context.ContextOuterClass.EndPointId.Builder getEndpointIdBuilder() {
        
        onChanged();
        return getEndpointIdFieldBuilder().getBuilder();
      }
      /**
       * <code>.context.EndPointId endpoint_id = 5;</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 = 5;</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 = 6;</code>
       * @return Whether the serviceId field is set.
       */
      public boolean hasServiceId() {
        return serviceIdBuilder_ != null || serviceId_ != null;
      }
      /**
       * <code>.context.ServiceId service_id = 6;</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 = 6;</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 = 6;</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 = 6;</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 = 6;</code>
       */
      public Builder clearServiceId() {
        if (serviceIdBuilder_ == null) {
          serviceId_ = null;
          onChanged();
        } else {
          serviceId_ = null;
          serviceIdBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.context.ServiceId service_id = 6;</code>
       */
      public context.ContextOuterClass.ServiceId.Builder getServiceIdBuilder() {
        
        onChanged();
        return getServiceIdFieldBuilder().getBuilder();
      }
      /**
       * <code>.context.ServiceId service_id = 6;</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 = 6;</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 = 7;</code>
       * @return Whether the sliceId field is set.
       */
      public boolean hasSliceId() {
        return sliceIdBuilder_ != null || sliceId_ != null;
      }
      /**
       * <code>.context.SliceId slice_id = 7;</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 = 7;</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 = 7;</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 = 7;</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 = 7;</code>
       */
      public Builder clearSliceId() {
        if (sliceIdBuilder_ == null) {
          sliceId_ = null;
          onChanged();
        } else {
          sliceId_ = null;
          sliceIdBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.context.SliceId slice_id = 7;</code>
       */
      public context.ContextOuterClass.SliceId.Builder getSliceIdBuilder() {
        
        onChanged();
        return getSliceIdFieldBuilder().getBuilder();
      }
      /**
       * <code>.context.SliceId slice_id = 7;</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 = 7;</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.BundleKpiDescriptor)
    }

    // @@protoc_insertion_point(class_scope:monitoring.BundleKpiDescriptor)
    private static final monitoring.Monitoring.BundleKpiDescriptor DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new monitoring.Monitoring.BundleKpiDescriptor();
    }

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

    private static final com.google.protobuf.Parser<BundleKpiDescriptor>
        PARSER = new com.google.protobuf.AbstractParser<BundleKpiDescriptor>() {
      @java.lang.Override
      public BundleKpiDescriptor parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new BundleKpiDescriptor(input, extensionRegistry);
      }
    };

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

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

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

  }

  public interface EditedKpiDescriptorOrBuilder extends
      // @@protoc_insertion_point(interface_extends:monitoring.EditedKpiDescriptor)
      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.EditedKpiDescriptor}
   */
  public static final class EditedKpiDescriptor extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:monitoring.EditedKpiDescriptor)
      EditedKpiDescriptorOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use EditedKpiDescriptor.newBuilder() to construct.
    private EditedKpiDescriptor(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private EditedKpiDescriptor() {
      kpiDescription_ = "";
      kpiIdList_ = java.util.Collections.emptyList();
      kpiSampleType_ = 0;
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private EditedKpiDescriptor(
        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_EditedKpiDescriptor_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return monitoring.Monitoring.internal_static_monitoring_EditedKpiDescriptor_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              monitoring.Monitoring.EditedKpiDescriptor.class, monitoring.Monitoring.EditedKpiDescriptor.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.EditedKpiDescriptor)) {
        return super.equals(obj);
      }
      monitoring.Monitoring.EditedKpiDescriptor other = (monitoring.Monitoring.EditedKpiDescriptor) 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.EditedKpiDescriptor parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static monitoring.Monitoring.EditedKpiDescriptor parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static monitoring.Monitoring.EditedKpiDescriptor parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static monitoring.Monitoring.EditedKpiDescriptor 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.EditedKpiDescriptor parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static monitoring.Monitoring.EditedKpiDescriptor parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static monitoring.Monitoring.EditedKpiDescriptor parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static monitoring.Monitoring.EditedKpiDescriptor 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.EditedKpiDescriptor parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static monitoring.Monitoring.EditedKpiDescriptor 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.EditedKpiDescriptor parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static monitoring.Monitoring.EditedKpiDescriptor 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.EditedKpiDescriptor 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.EditedKpiDescriptor}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:monitoring.EditedKpiDescriptor)
        monitoring.Monitoring.EditedKpiDescriptorOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return monitoring.Monitoring.internal_static_monitoring_EditedKpiDescriptor_descriptor;
      }

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

      // Construct using monitoring.Monitoring.EditedKpiDescriptor.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_EditedKpiDescriptor_descriptor;
      }

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

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

      @java.lang.Override
      public monitoring.Monitoring.EditedKpiDescriptor buildPartial() {
        monitoring.Monitoring.EditedKpiDescriptor result = new monitoring.Monitoring.EditedKpiDescriptor(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.EditedKpiDescriptor) {
          return mergeFrom((monitoring.Monitoring.EditedKpiDescriptor)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(monitoring.Monitoring.EditedKpiDescriptor other) {
        if (other == monitoring.Monitoring.EditedKpiDescriptor.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.EditedKpiDescriptor parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (monitoring.Monitoring.EditedKpiDescriptor) 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.EditedKpiDescriptor)
    }

    // @@protoc_insertion_point(class_scope:monitoring.EditedKpiDescriptor)
    private static final monitoring.Monitoring.EditedKpiDescriptor DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new monitoring.Monitoring.EditedKpiDescriptor();
    }

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

    private static final com.google.protobuf.Parser<EditedKpiDescriptor>
        PARSER = new com.google.protobuf.AbstractParser<EditedKpiDescriptor>() {
      @java.lang.Override
      public EditedKpiDescriptor parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new EditedKpiDescriptor(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public monitoring.Monitoring.EditedKpiDescriptor 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>repeated .monitoring.KpiId kpi_id = 1;</code>
     */
    java.util.List<monitoring.Monitoring.KpiId> 
        getKpiIdList();
    /**
     * <code>repeated .monitoring.KpiId kpi_id = 1;</code>
     */
    monitoring.Monitoring.KpiId getKpiId(int index);
    /**
     * <code>repeated .monitoring.KpiId kpi_id = 1;</code>
     */
    int getKpiIdCount();
    /**
     * <code>repeated .monitoring.KpiId kpi_id = 1;</code>
     */
    java.util.List<? extends monitoring.Monitoring.KpiIdOrBuilder> 
        getKpiIdOrBuilderList();
    /**
     * <code>repeated .monitoring.KpiId kpi_id = 1;</code>
     */
    monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder(
        int index);

    /**
     * <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>string start_date = 5;</code>
     * @return The startDate.
     */
    java.lang.String getStartDate();
    /**
     * <pre>
     * used when you want something like "get the samples since X date/time"
     * </pre>
     *
     * <code>string start_date = 5;</code>
     * @return The bytes for startDate.
     */
    com.google.protobuf.ByteString
        getStartDateBytes();

    /**
     * <pre>
     * used when you want something like "get the samples until X date/time"
     * </pre>
     *
     * <code>string end_date = 6;</code>
     * @return The endDate.
     */
    java.lang.String getEndDate();
    /**
     * <pre>
     * used when you want something like "get the samples until X date/time"
     * </pre>
     *
     * <code>string end_date = 6;</code>
     * @return The bytes for endDate.
     */
    com.google.protobuf.ByteString
        getEndDateBytes();
  }
  /**
   * 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() {
      kpiId_ = java.util.Collections.emptyList();
      startDate_ = "";
      endDate_ = "";
    }

    @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();
      }
      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)) {
                kpiId_ = new java.util.ArrayList<monitoring.Monitoring.KpiId>();
                mutable_bitField0_ |= 0x00000001;
              }
              kpiId_.add(
                  input.readMessage(monitoring.Monitoring.KpiId.parser(), extensionRegistry));
              break;
            }
            case 21: {

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

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

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

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

              endDate_ = s;
              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)) {
          kpiId_ = java.util.Collections.unmodifiableList(kpiId_);
        }
        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 java.util.List<monitoring.Monitoring.KpiId> kpiId_;
    /**
     * <code>repeated .monitoring.KpiId kpi_id = 1;</code>
     */
    @java.lang.Override
    public java.util.List<monitoring.Monitoring.KpiId> getKpiIdList() {
      return kpiId_;
    }
    /**
     * <code>repeated .monitoring.KpiId kpi_id = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends monitoring.Monitoring.KpiIdOrBuilder> 
        getKpiIdOrBuilderList() {
      return kpiId_;
    }
    /**
     * <code>repeated .monitoring.KpiId kpi_id = 1;</code>
     */
    @java.lang.Override
    public int getKpiIdCount() {
      return kpiId_.size();
    }
    /**
     * <code>repeated .monitoring.KpiId kpi_id = 1;</code>
     */
    @java.lang.Override
    public monitoring.Monitoring.KpiId getKpiId(int index) {
      return kpiId_.get(index);
    }
    /**
     * <code>repeated .monitoring.KpiId kpi_id = 1;</code>
     */
    @java.lang.Override
    public monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder(
        int index) {
      return kpiId_.get(index);
    }

    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_DATE_FIELD_NUMBER = 5;
    private volatile java.lang.Object startDate_;
    /**
     * <pre>
     * used when you want something like "get the samples since X date/time"
     * </pre>
     *
     * <code>string start_date = 5;</code>
     * @return The startDate.
     */
    @java.lang.Override
    public java.lang.String getStartDate() {
      java.lang.Object ref = startDate_;
      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();
        startDate_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * used when you want something like "get the samples since X date/time"
     * </pre>
     *
     * <code>string start_date = 5;</code>
     * @return The bytes for startDate.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getStartDateBytes() {
      java.lang.Object ref = startDate_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        startDate_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int END_DATE_FIELD_NUMBER = 6;
    private volatile java.lang.Object endDate_;
    /**
     * <pre>
     * used when you want something like "get the samples until X date/time"
     * </pre>
     *
     * <code>string end_date = 6;</code>
     * @return The endDate.
     */
    @java.lang.Override
    public java.lang.String getEndDate() {
      java.lang.Object ref = endDate_;
      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();
        endDate_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * used when you want something like "get the samples until X date/time"
     * </pre>
     *
     * <code>string end_date = 6;</code>
     * @return The bytes for endDate.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getEndDateBytes() {
      java.lang.Object ref = endDate_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        endDate_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < kpiId_.size(); i++) {
        output.writeMessage(1, kpiId_.get(i));
      }
      if (monitoringWindowS_ != 0F) {
        output.writeFloat(2, monitoringWindowS_);
      }
      if (samplingRateS_ != 0F) {
        output.writeFloat(3, samplingRateS_);
      }
      if (lastNSamples_ != 0) {
        output.writeUInt32(4, lastNSamples_);
      }
      if (!getStartDateBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, startDate_);
      }
      if (!getEndDateBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, endDate_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < kpiId_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, kpiId_.get(i));
      }
      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 (!getStartDateBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, startDate_);
      }
      if (!getEndDateBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, endDate_);
      }
      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 (!getKpiIdList()
          .equals(other.getKpiIdList())) 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 (!getStartDate()
          .equals(other.getStartDate())) return false;
      if (!getEndDate()
          .equals(other.getEndDate())) 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 (getKpiIdCount() > 0) {
        hash = (37 * hash) + KPI_ID_FIELD_NUMBER;
        hash = (53 * hash) + getKpiIdList().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();
      hash = (37 * hash) + START_DATE_FIELD_NUMBER;
      hash = (53 * hash) + getStartDate().hashCode();
      hash = (37 * hash) + END_DATE_FIELD_NUMBER;
      hash = (53 * hash) + getEndDate().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) {
          getKpiIdFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (kpiIdBuilder_ == null) {
          kpiId_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          kpiIdBuilder_.clear();
        }
        monitoringWindowS_ = 0F;

        samplingRateS_ = 0F;

        lastNSamples_ = 0;

        startDate_ = "";

        endDate_ = "";

        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);
        int from_bitField0_ = bitField0_;
        if (kpiIdBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            kpiId_ = java.util.Collections.unmodifiableList(kpiId_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.kpiId_ = kpiId_;
        } else {
          result.kpiId_ = kpiIdBuilder_.build();
        }
        result.monitoringWindowS_ = monitoringWindowS_;
        result.samplingRateS_ = samplingRateS_;
        result.lastNSamples_ = lastNSamples_;
        result.startDate_ = startDate_;
        result.endDate_ = endDate_;
        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 (kpiIdBuilder_ == null) {
          if (!other.kpiId_.isEmpty()) {
            if (kpiId_.isEmpty()) {
              kpiId_ = other.kpiId_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureKpiIdIsMutable();
              kpiId_.addAll(other.kpiId_);
            }
            onChanged();
          }
        } else {
          if (!other.kpiId_.isEmpty()) {
            if (kpiIdBuilder_.isEmpty()) {
              kpiIdBuilder_.dispose();
              kpiIdBuilder_ = null;
              kpiId_ = other.kpiId_;
              bitField0_ = (bitField0_ & ~0x00000001);
              kpiIdBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getKpiIdFieldBuilder() : null;
            } else {
              kpiIdBuilder_.addAllMessages(other.kpiId_);
            }
          }
        }
        if (other.getMonitoringWindowS() != 0F) {
          setMonitoringWindowS(other.getMonitoringWindowS());
        }
        if (other.getSamplingRateS() != 0F) {
          setSamplingRateS(other.getSamplingRateS());
        }
        if (other.getLastNSamples() != 0) {
          setLastNSamples(other.getLastNSamples());
        }
        if (!other.getStartDate().isEmpty()) {
          startDate_ = other.startDate_;
          onChanged();
        }
        if (!other.getEndDate().isEmpty()) {
          endDate_ = other.endDate_;
          onChanged();
        }
        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 int bitField0_;

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

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

      /**
       * <code>repeated .monitoring.KpiId kpi_id = 1;</code>
       */
      public java.util.List<monitoring.Monitoring.KpiId> getKpiIdList() {
        if (kpiIdBuilder_ == null) {
          return java.util.Collections.unmodifiableList(kpiId_);
        } else {
          return kpiIdBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .monitoring.KpiId kpi_id = 1;</code>
       */
      public int getKpiIdCount() {
        if (kpiIdBuilder_ == null) {
          return kpiId_.size();
        } else {
          return kpiIdBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .monitoring.KpiId kpi_id = 1;</code>
       */
      public monitoring.Monitoring.KpiId getKpiId(int index) {
        if (kpiIdBuilder_ == null) {
          return kpiId_.get(index);
        } else {
          return kpiIdBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .monitoring.KpiId kpi_id = 1;</code>
       */
      public Builder setKpiId(
          int index, monitoring.Monitoring.KpiId value) {
        if (kpiIdBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureKpiIdIsMutable();
          kpiId_.set(index, value);
          onChanged();
        } else {
          kpiIdBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.KpiId kpi_id = 1;</code>
       */
      public Builder setKpiId(
          int index, monitoring.Monitoring.KpiId.Builder builderForValue) {
        if (kpiIdBuilder_ == null) {
          ensureKpiIdIsMutable();
          kpiId_.set(index, builderForValue.build());
          onChanged();
        } else {
          kpiIdBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.KpiId kpi_id = 1;</code>
       */
      public Builder addKpiId(monitoring.Monitoring.KpiId value) {
        if (kpiIdBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureKpiIdIsMutable();
          kpiId_.add(value);
          onChanged();
        } else {
          kpiIdBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.KpiId kpi_id = 1;</code>
       */
      public Builder addKpiId(
          int index, monitoring.Monitoring.KpiId value) {
        if (kpiIdBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureKpiIdIsMutable();
          kpiId_.add(index, value);
          onChanged();
        } else {
          kpiIdBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.KpiId kpi_id = 1;</code>
       */
      public Builder addKpiId(
          monitoring.Monitoring.KpiId.Builder builderForValue) {
        if (kpiIdBuilder_ == null) {
          ensureKpiIdIsMutable();
          kpiId_.add(builderForValue.build());
          onChanged();
        } else {
          kpiIdBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.KpiId kpi_id = 1;</code>
       */
      public Builder addKpiId(
          int index, monitoring.Monitoring.KpiId.Builder builderForValue) {
        if (kpiIdBuilder_ == null) {
          ensureKpiIdIsMutable();
          kpiId_.add(index, builderForValue.build());
          onChanged();
        } else {
          kpiIdBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.KpiId kpi_id = 1;</code>
       */
      public Builder addAllKpiId(
          java.lang.Iterable<? extends monitoring.Monitoring.KpiId> values) {
        if (kpiIdBuilder_ == null) {
          ensureKpiIdIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, kpiId_);
          onChanged();
        } else {
          kpiIdBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.KpiId kpi_id = 1;</code>
       */
      public Builder clearKpiId() {
        if (kpiIdBuilder_ == null) {
          kpiId_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          kpiIdBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.KpiId kpi_id = 1;</code>
       */
      public Builder removeKpiId(int index) {
        if (kpiIdBuilder_ == null) {
          ensureKpiIdIsMutable();
          kpiId_.remove(index);
          onChanged();
        } else {
          kpiIdBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.KpiId kpi_id = 1;</code>
       */
      public monitoring.Monitoring.KpiId.Builder getKpiIdBuilder(
          int index) {
        return getKpiIdFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .monitoring.KpiId kpi_id = 1;</code>
       */
      public monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder(
          int index) {
        if (kpiIdBuilder_ == null) {
          return kpiId_.get(index);  } else {
          return kpiIdBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .monitoring.KpiId kpi_id = 1;</code>
       */
      public java.util.List<? extends monitoring.Monitoring.KpiIdOrBuilder> 
           getKpiIdOrBuilderList() {
        if (kpiIdBuilder_ != null) {
          return kpiIdBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(kpiId_);
        }
      }
      /**
       * <code>repeated .monitoring.KpiId kpi_id = 1;</code>
       */
      public monitoring.Monitoring.KpiId.Builder addKpiIdBuilder() {
        return getKpiIdFieldBuilder().addBuilder(
            monitoring.Monitoring.KpiId.getDefaultInstance());
      }
      /**
       * <code>repeated .monitoring.KpiId kpi_id = 1;</code>
       */
      public monitoring.Monitoring.KpiId.Builder addKpiIdBuilder(
          int index) {
        return getKpiIdFieldBuilder().addBuilder(
            index, monitoring.Monitoring.KpiId.getDefaultInstance());
      }
      /**
       * <code>repeated .monitoring.KpiId kpi_id = 1;</code>
       */
      public java.util.List<monitoring.Monitoring.KpiId.Builder> 
           getKpiIdBuilderList() {
        return getKpiIdFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder> 
          getKpiIdFieldBuilder() {
        if (kpiIdBuilder_ == null) {
          kpiIdBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder>(
                  kpiId_,
                  ((bitField0_ & 0x00000001) != 0),
                  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 java.lang.Object startDate_ = "";
      /**
       * <pre>
       * used when you want something like "get the samples since X date/time"
       * </pre>
       *
       * <code>string start_date = 5;</code>
       * @return The startDate.
       */
      public java.lang.String getStartDate() {
        java.lang.Object ref = startDate_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          startDate_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * used when you want something like "get the samples since X date/time"
       * </pre>
       *
       * <code>string start_date = 5;</code>
       * @return The bytes for startDate.
       */
      public com.google.protobuf.ByteString
          getStartDateBytes() {
        java.lang.Object ref = startDate_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          startDate_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * used when you want something like "get the samples since X date/time"
       * </pre>
       *
       * <code>string start_date = 5;</code>
       * @param value The startDate to set.
       * @return This builder for chaining.
       */
      public Builder setStartDate(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        startDate_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * used when you want something like "get the samples since X date/time"
       * </pre>
       *
       * <code>string start_date = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearStartDate() {
        
        startDate_ = getDefaultInstance().getStartDate();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * used when you want something like "get the samples since X date/time"
       * </pre>
       *
       * <code>string start_date = 5;</code>
       * @param value The bytes for startDate to set.
       * @return This builder for chaining.
       */
      public Builder setStartDateBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        startDate_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object endDate_ = "";
      /**
       * <pre>
       * used when you want something like "get the samples until X date/time"
       * </pre>
       *
       * <code>string end_date = 6;</code>
       * @return The endDate.
       */
      public java.lang.String getEndDate() {
        java.lang.Object ref = endDate_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          endDate_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * used when you want something like "get the samples until X date/time"
       * </pre>
       *
       * <code>string end_date = 6;</code>
       * @return The bytes for endDate.
       */
      public com.google.protobuf.ByteString
          getEndDateBytes() {
        java.lang.Object ref = endDate_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          endDate_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * used when you want something like "get the samples until X date/time"
       * </pre>
       *
       * <code>string end_date = 6;</code>
       * @param value The endDate to set.
       * @return This builder for chaining.
       */
      public Builder setEndDate(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        endDate_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * used when you want something like "get the samples until X date/time"
       * </pre>
       *
       * <code>string end_date = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearEndDate() {
        
        endDate_ = getDefaultInstance().getEndDate();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * used when you want something like "get the samples until X date/time"
       * </pre>
       *
       * <code>string end_date = 6;</code>
       * @param value The bytes for endDate to set.
       * @return This builder for chaining.
       */
      public Builder setEndDateBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        endDate_ = value;
        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.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>string timestamp = 2;</code>
     * @return The timestamp.
     */
    java.lang.String getTimestamp();
    /**
     * <code>string timestamp = 2;</code>
     * @return The bytes for timestamp.
     */
    com.google.protobuf.ByteString
        getTimestampBytes();

    /**
     * <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() {
      timestamp_ = "";
    }

    @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: {
              java.lang.String s = input.readStringRequireUtf8();

              timestamp_ = s;
              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 volatile java.lang.Object timestamp_;
    /**
     * <code>string timestamp = 2;</code>
     * @return The timestamp.
     */
    @java.lang.Override
    public java.lang.String getTimestamp() {
      java.lang.Object ref = timestamp_;
      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();
        timestamp_ = s;
        return s;
      }
    }
    /**
     * <code>string timestamp = 2;</code>
     * @return The bytes for timestamp.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTimestampBytes() {
      java.lang.Object ref = timestamp_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        timestamp_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    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 (!getTimestampBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, timestamp_);
      }
      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 (!getTimestampBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, timestamp_);
      }
      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 (!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();
      }
      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;
        }
        timestamp_ = "";

        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();
        }
        result.timestamp_ = timestamp_;
        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.getTimestamp().isEmpty()) {
          timestamp_ = other.timestamp_;
          onChanged();
        }
        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 java.lang.Object timestamp_ = "";
      /**
       * <code>string timestamp = 2;</code>
       * @return The timestamp.
       */
      public java.lang.String getTimestamp() {
        java.lang.Object ref = timestamp_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          timestamp_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string timestamp = 2;</code>
       * @return The bytes for timestamp.
       */
      public com.google.protobuf.ByteString
          getTimestampBytes() {
        java.lang.Object ref = timestamp_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          timestamp_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string timestamp = 2;</code>
       * @param value The timestamp to set.
       * @return This builder for chaining.
       */
      public Builder setTimestamp(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        timestamp_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string timestamp = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTimestamp() {
        
        timestamp_ = getDefaultInstance().getTimestamp();
        onChanged();
        return this;
      }
      /**
       * <code>string timestamp = 2;</code>
       * @param value The bytes for timestamp to set.
       * @return This builder for chaining.
       */
      public Builder setTimestampBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        timestamp_ = value;
        onChanged();
        return this;
      }

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

    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());
      }
      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());
      }
      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 (!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 = (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;
        }
        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();
        }
        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());
        }
        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_;
      }
      @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>uint32 intVal = 1;</code>
     * @return Whether the intVal field is set.
     */
    boolean hasIntVal();
    /**
     * <code>uint32 intVal = 1;</code>
     * @return The intVal.
     */
    int getIntVal();

    /**
     * <code>float floatVal = 2;</code>
     * @return Whether the floatVal field is set.
     */
    boolean hasFloatVal();
    /**
     * <code>float floatVal = 2;</code>
     * @return The floatVal.
     */
    float getFloatVal();

    /**
     * <code>string stringVal = 3;</code>
     * @return Whether the stringVal field is set.
     */
    boolean hasStringVal();
    /**
     * <code>string stringVal = 3;</code>
     * @return The stringVal.
     */
    java.lang.String getStringVal();
    /**
     * <code>string stringVal = 3;</code>
     * @return The bytes for stringVal.
     */
    com.google.protobuf.ByteString
        getStringValBytes();

    /**
     * <code>bool boolVal = 4;</code>
     * @return Whether the boolVal field is set.
     */
    boolean hasBoolVal();
    /**
     * <code>bool boolVal = 4;</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.readUInt32();
              break;
            }
            case 21: {
              valueCase_ = 2;
              value_ = input.readFloat();
              break;
            }
            case 26: {
              java.lang.String s = input.readStringRequireUtf8();
              valueCase_ = 3;
              value_ = s;
              break;
            }
            case 32: {
              valueCase_ = 4;
              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 {
      INTVAL(1),
      FLOATVAL(2),
      STRINGVAL(3),
      BOOLVAL(4),
      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 INTVAL;
          case 2: return FLOATVAL;
          case 3: return STRINGVAL;
          case 4: 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 INTVAL_FIELD_NUMBER = 1;
    /**
     * <code>uint32 intVal = 1;</code>
     * @return Whether the intVal field is set.
     */
    @java.lang.Override
    public boolean hasIntVal() {
      return valueCase_ == 1;
    }
    /**
     * <code>uint32 intVal = 1;</code>
     * @return The intVal.
     */
    @java.lang.Override
    public int getIntVal() {
      if (valueCase_ == 1) {
        return (java.lang.Integer) value_;
      }
      return 0;
    }

    public static final int FLOATVAL_FIELD_NUMBER = 2;
    /**
     * <code>float floatVal = 2;</code>
     * @return Whether the floatVal field is set.
     */
    @java.lang.Override
    public boolean hasFloatVal() {
      return valueCase_ == 2;
    }
    /**
     * <code>float floatVal = 2;</code>
     * @return The floatVal.
     */
    @java.lang.Override
    public float getFloatVal() {
      if (valueCase_ == 2) {
        return (java.lang.Float) value_;
      }
      return 0F;
    }

    public static final int STRINGVAL_FIELD_NUMBER = 3;
    /**
     * <code>string stringVal = 3;</code>
     * @return Whether the stringVal field is set.
     */
    public boolean hasStringVal() {
      return valueCase_ == 3;
    }
    /**
     * <code>string stringVal = 3;</code>
     * @return The stringVal.
     */
    public java.lang.String getStringVal() {
      java.lang.Object ref = "";
      if (valueCase_ == 3) {
        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_ == 3) {
          value_ = s;
        }
        return s;
      }
    }
    /**
     * <code>string stringVal = 3;</code>
     * @return The bytes for stringVal.
     */
    public com.google.protobuf.ByteString
        getStringValBytes() {
      java.lang.Object ref = "";
      if (valueCase_ == 3) {
        ref = value_;
      }
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        if (valueCase_ == 3) {
          value_ = b;
        }
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int BOOLVAL_FIELD_NUMBER = 4;
    /**
     * <code>bool boolVal = 4;</code>
     * @return Whether the boolVal field is set.
     */
    @java.lang.Override
    public boolean hasBoolVal() {
      return valueCase_ == 4;
    }
    /**
     * <code>bool boolVal = 4;</code>
     * @return The boolVal.
     */
    @java.lang.Override
    public boolean getBoolVal() {
      if (valueCase_ == 4) {
        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.writeUInt32(
            1, (int)((java.lang.Integer) value_));
      }
      if (valueCase_ == 2) {
        output.writeFloat(
            2, (float)((java.lang.Float) value_));
      }
      if (valueCase_ == 3) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, value_);
      }
      if (valueCase_ == 4) {
        output.writeBool(
            4, (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
          .computeUInt32Size(
              1, (int)((java.lang.Integer) value_));
      }
      if (valueCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(
              2, (float)((java.lang.Float) value_));
      }
      if (valueCase_ == 3) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, value_);
      }
      if (valueCase_ == 4) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(
              4, (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 (getIntVal()
              != other.getIntVal()) return false;
          break;
        case 2:
          if (java.lang.Float.floatToIntBits(getFloatVal())
              != java.lang.Float.floatToIntBits(
                  other.getFloatVal())) return false;
          break;
        case 3:
          if (!getStringVal()
              .equals(other.getStringVal())) return false;
          break;
        case 4:
          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) + INTVAL_FIELD_NUMBER;
          hash = (53 * hash) + getIntVal();
          break;
        case 2:
          hash = (37 * hash) + FLOATVAL_FIELD_NUMBER;
          hash = (53 * hash) + java.lang.Float.floatToIntBits(
              getFloatVal());
          break;
        case 3:
          hash = (37 * hash) + STRINGVAL_FIELD_NUMBER;
          hash = (53 * hash) + getStringVal().hashCode();
          break;
        case 4:
          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_;
        }
        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 INTVAL: {
            setIntVal(other.getIntVal());
            break;
          }
          case FLOATVAL: {
            setFloatVal(other.getFloatVal());
            break;
          }
          case STRINGVAL: {
            valueCase_ = 3;
            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>uint32 intVal = 1;</code>
       * @return Whether the intVal field is set.
       */
      public boolean hasIntVal() {
        return valueCase_ == 1;
      }
      /**
       * <code>uint32 intVal = 1;</code>
       * @return The intVal.
       */
      public int getIntVal() {
        if (valueCase_ == 1) {
          return (java.lang.Integer) value_;
        }
        return 0;
      }
      /**
       * <code>uint32 intVal = 1;</code>
       * @param value The intVal to set.
       * @return This builder for chaining.
       */
      public Builder setIntVal(int value) {
        valueCase_ = 1;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>uint32 intVal = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearIntVal() {
        if (valueCase_ == 1) {
          valueCase_ = 0;
          value_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>float floatVal = 2;</code>
       * @return Whether the floatVal field is set.
       */
      public boolean hasFloatVal() {
        return valueCase_ == 2;
      }
      /**
       * <code>float floatVal = 2;</code>
       * @return The floatVal.
       */
      public float getFloatVal() {
        if (valueCase_ == 2) {
          return (java.lang.Float) value_;
        }
        return 0F;
      }
      /**
       * <code>float floatVal = 2;</code>
       * @param value The floatVal to set.
       * @return This builder for chaining.
       */
      public Builder setFloatVal(float value) {
        valueCase_ = 2;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>float floatVal = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearFloatVal() {
        if (valueCase_ == 2) {
          valueCase_ = 0;
          value_ = null;
          onChanged();
        }
        return this;
      }

      /**
       * <code>string stringVal = 3;</code>
       * @return Whether the stringVal field is set.
       */
      @java.lang.Override
      public boolean hasStringVal() {
        return valueCase_ == 3;
      }
      /**
       * <code>string stringVal = 3;</code>
       * @return The stringVal.
       */
      @java.lang.Override
      public java.lang.String getStringVal() {
        java.lang.Object ref = "";
        if (valueCase_ == 3) {
          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_ == 3) {
            value_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string stringVal = 3;</code>
       * @return The bytes for stringVal.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getStringValBytes() {
        java.lang.Object ref = "";
        if (valueCase_ == 3) {
          ref = value_;
        }
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          if (valueCase_ == 3) {
            value_ = b;
          }
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string stringVal = 3;</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_ = 3;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string stringVal = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearStringVal() {
        if (valueCase_ == 3) {
          valueCase_ = 0;
          value_ = null;
          onChanged();
        }
        return this;
      }
      /**
       * <code>string stringVal = 3;</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_ = 3;
        value_ = value;
        onChanged();
        return this;
      }

      /**
       * <code>bool boolVal = 4;</code>
       * @return Whether the boolVal field is set.
       */
      public boolean hasBoolVal() {
        return valueCase_ == 4;
      }
      /**
       * <code>bool boolVal = 4;</code>
       * @return The boolVal.
       */
      public boolean getBoolVal() {
        if (valueCase_ == 4) {
          return (java.lang.Boolean) value_;
        }
        return false;
      }
      /**
       * <code>bool boolVal = 4;</code>
       * @param value The boolVal to set.
       * @return This builder for chaining.
       */
      public Builder setBoolVal(boolean value) {
        valueCase_ = 4;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool boolVal = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearBoolVal() {
        if (valueCase_ == 4) {
          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_list = 1;</code>
     */
    java.util.List<monitoring.Monitoring.Kpi> 
        getKpiListList();
    /**
     * <code>repeated .monitoring.Kpi kpi_list = 1;</code>
     */
    monitoring.Monitoring.Kpi getKpiList(int index);
    /**
     * <code>repeated .monitoring.Kpi kpi_list = 1;</code>
     */
    int getKpiListCount();
    /**
     * <code>repeated .monitoring.Kpi kpi_list = 1;</code>
     */
    java.util.List<? extends monitoring.Monitoring.KpiOrBuilder> 
        getKpiListOrBuilderList();
    /**
     * <code>repeated .monitoring.Kpi kpi_list = 1;</code>
     */
    monitoring.Monitoring.KpiOrBuilder getKpiListOrBuilder(
        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() {
      kpiList_ = 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)) {
                kpiList_ = new java.util.ArrayList<monitoring.Monitoring.Kpi>();
                mutable_bitField0_ |= 0x00000001;
              }
              kpiList_.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)) {
          kpiList_ = java.util.Collections.unmodifiableList(kpiList_);
        }
        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_LIST_FIELD_NUMBER = 1;
    private java.util.List<monitoring.Monitoring.Kpi> kpiList_;
    /**
     * <code>repeated .monitoring.Kpi kpi_list = 1;</code>
     */
    @java.lang.Override
    public java.util.List<monitoring.Monitoring.Kpi> getKpiListList() {
      return kpiList_;
    }
    /**
     * <code>repeated .monitoring.Kpi kpi_list = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends monitoring.Monitoring.KpiOrBuilder> 
        getKpiListOrBuilderList() {
      return kpiList_;
    }
    /**
     * <code>repeated .monitoring.Kpi kpi_list = 1;</code>
     */
    @java.lang.Override
    public int getKpiListCount() {
      return kpiList_.size();
    }
    /**
     * <code>repeated .monitoring.Kpi kpi_list = 1;</code>
     */
    @java.lang.Override
    public monitoring.Monitoring.Kpi getKpiList(int index) {
      return kpiList_.get(index);
    }
    /**
     * <code>repeated .monitoring.Kpi kpi_list = 1;</code>
     */
    @java.lang.Override
    public monitoring.Monitoring.KpiOrBuilder getKpiListOrBuilder(
        int index) {
      return kpiList_.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 < kpiList_.size(); i++) {
        output.writeMessage(1, kpiList_.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 < kpiList_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, kpiList_.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 (!getKpiListList()
          .equals(other.getKpiListList())) 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 (getKpiListCount() > 0) {
        hash = (37 * hash) + KPI_LIST_FIELD_NUMBER;
        hash = (53 * hash) + getKpiListList().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) {
          getKpiListFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (kpiListBuilder_ == null) {
          kpiList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          kpiListBuilder_.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 (kpiListBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            kpiList_ = java.util.Collections.unmodifiableList(kpiList_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          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.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 (kpiListBuilder_ == null) {
          if (!other.kpiList_.isEmpty()) {
            if (kpiList_.isEmpty()) {
              kpiList_ = other.kpiList_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureKpiListIsMutable();
              kpiList_.addAll(other.kpiList_);
            }
            onChanged();
          }
        } else {
          if (!other.kpiList_.isEmpty()) {
            if (kpiListBuilder_.isEmpty()) {
              kpiListBuilder_.dispose();
              kpiListBuilder_ = null;
              kpiList_ = other.kpiList_;
              bitField0_ = (bitField0_ & ~0x00000001);
              kpiListBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getKpiListFieldBuilder() : null;
            } else {
              kpiListBuilder_.addAllMessages(other.kpiList_);
            }
          }
        }
        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> kpiList_ =
        java.util.Collections.emptyList();
      private void ensureKpiListIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          kpiList_ = new java.util.ArrayList<monitoring.Monitoring.Kpi>(kpiList_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          monitoring.Monitoring.Kpi, monitoring.Monitoring.Kpi.Builder, monitoring.Monitoring.KpiOrBuilder> kpiListBuilder_;

      /**
       * <code>repeated .monitoring.Kpi kpi_list = 1;</code>
       */
      public java.util.List<monitoring.Monitoring.Kpi> getKpiListList() {
        if (kpiListBuilder_ == null) {
          return java.util.Collections.unmodifiableList(kpiList_);
        } else {
          return kpiListBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .monitoring.Kpi kpi_list = 1;</code>
       */
      public int getKpiListCount() {
        if (kpiListBuilder_ == null) {
          return kpiList_.size();
        } else {
          return kpiListBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .monitoring.Kpi kpi_list = 1;</code>
       */
      public monitoring.Monitoring.Kpi getKpiList(int index) {
        if (kpiListBuilder_ == null) {
          return kpiList_.get(index);
        } else {
          return kpiListBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .monitoring.Kpi kpi_list = 1;</code>
       */
      public Builder setKpiList(
          int index, monitoring.Monitoring.Kpi value) {
        if (kpiListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureKpiListIsMutable();
          kpiList_.set(index, value);
          onChanged();
        } else {
          kpiListBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.Kpi kpi_list = 1;</code>
       */
      public Builder setKpiList(
          int index, monitoring.Monitoring.Kpi.Builder builderForValue) {
        if (kpiListBuilder_ == null) {
          ensureKpiListIsMutable();
          kpiList_.set(index, builderForValue.build());
          onChanged();
        } else {
          kpiListBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.Kpi kpi_list = 1;</code>
       */
      public Builder addKpiList(monitoring.Monitoring.Kpi value) {
        if (kpiListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureKpiListIsMutable();
          kpiList_.add(value);
          onChanged();
        } else {
          kpiListBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.Kpi kpi_list = 1;</code>
       */
      public Builder addKpiList(
          int index, monitoring.Monitoring.Kpi value) {
        if (kpiListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureKpiListIsMutable();
          kpiList_.add(index, value);
          onChanged();
        } else {
          kpiListBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.Kpi kpi_list = 1;</code>
       */
      public Builder addKpiList(
          monitoring.Monitoring.Kpi.Builder builderForValue) {
        if (kpiListBuilder_ == null) {
          ensureKpiListIsMutable();
          kpiList_.add(builderForValue.build());
          onChanged();
        } else {
          kpiListBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.Kpi kpi_list = 1;</code>
       */
      public Builder addKpiList(
          int index, monitoring.Monitoring.Kpi.Builder builderForValue) {
        if (kpiListBuilder_ == null) {
          ensureKpiListIsMutable();
          kpiList_.add(index, builderForValue.build());
          onChanged();
        } else {
          kpiListBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.Kpi kpi_list = 1;</code>
       */
      public Builder addAllKpiList(
          java.lang.Iterable<? extends monitoring.Monitoring.Kpi> values) {
        if (kpiListBuilder_ == null) {
          ensureKpiListIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, kpiList_);
          onChanged();
        } else {
          kpiListBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.Kpi kpi_list = 1;</code>
       */
      public Builder clearKpiList() {
        if (kpiListBuilder_ == null) {
          kpiList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          kpiListBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.Kpi kpi_list = 1;</code>
       */
      public Builder removeKpiList(int index) {
        if (kpiListBuilder_ == null) {
          ensureKpiListIsMutable();
          kpiList_.remove(index);
          onChanged();
        } else {
          kpiListBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.Kpi kpi_list = 1;</code>
       */
      public monitoring.Monitoring.Kpi.Builder getKpiListBuilder(
          int index) {
        return getKpiListFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .monitoring.Kpi kpi_list = 1;</code>
       */
      public monitoring.Monitoring.KpiOrBuilder getKpiListOrBuilder(
          int index) {
        if (kpiListBuilder_ == null) {
          return kpiList_.get(index);  } else {
          return kpiListBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .monitoring.Kpi kpi_list = 1;</code>
       */
      public java.util.List<? extends monitoring.Monitoring.KpiOrBuilder> 
           getKpiListOrBuilderList() {
        if (kpiListBuilder_ != null) {
          return kpiListBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(kpiList_);
        }
      }
      /**
       * <code>repeated .monitoring.Kpi kpi_list = 1;</code>
       */
      public monitoring.Monitoring.Kpi.Builder addKpiListBuilder() {
        return getKpiListFieldBuilder().addBuilder(
            monitoring.Monitoring.Kpi.getDefaultInstance());
      }
      /**
       * <code>repeated .monitoring.Kpi kpi_list = 1;</code>
       */
      public monitoring.Monitoring.Kpi.Builder addKpiListBuilder(
          int index) {
        return getKpiListFieldBuilder().addBuilder(
            index, monitoring.Monitoring.Kpi.getDefaultInstance());
      }
      /**
       * <code>repeated .monitoring.Kpi kpi_list = 1;</code>
       */
      public java.util.List<monitoring.Monitoring.Kpi.Builder> 
           getKpiListBuilderList() {
        return getKpiListFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          monitoring.Monitoring.Kpi, monitoring.Monitoring.Kpi.Builder, monitoring.Monitoring.KpiOrBuilder> 
          getKpiListFieldBuilder() {
        if (kpiListBuilder_ == null) {
          kpiListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              monitoring.Monitoring.Kpi, monitoring.Monitoring.Kpi.Builder, monitoring.Monitoring.KpiOrBuilder>(
                  kpiList_,
                  ((bitField0_ & 0x00000001) != 0),
                  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.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.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 sampling_duration_s = 2;</code>
     * @return The samplingDurationS.
     */
    float getSamplingDurationS();

    /**
     * <code>float sampling_interval_s = 3;</code>
     * @return The samplingIntervalS.
     */
    float getSamplingIntervalS();

    /**
     * <pre>
     * used when you want something like "get the samples since X date/time"
     * </pre>
     *
     * <code>string start_date = 4;</code>
     * @return The startDate.
     */
    java.lang.String getStartDate();
    /**
     * <pre>
     * used when you want something like "get the samples since X date/time"
     * </pre>
     *
     * <code>string start_date = 4;</code>
     * @return The bytes for startDate.
     */
    com.google.protobuf.ByteString
        getStartDateBytes();

    /**
     * <pre>
     * used when you want something like "get the samples until X date/time"
     * </pre>
     *
     * <code>string end_date = 5;</code>
     * @return The endDate.
     */
    java.lang.String getEndDate();
    /**
     * <pre>
     * used when you want something like "get the samples until X date/time"
     * </pre>
     *
     * <code>string end_date = 5;</code>
     * @return The bytes for endDate.
     */
    com.google.protobuf.ByteString
        getEndDateBytes();
  }
  /**
   * 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() {
      startDate_ = "";
      endDate_ = "";
    }

    @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.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: {

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

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

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

              endDate_ = s;
              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 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 SAMPLING_DURATION_S_FIELD_NUMBER = 2;
    private float samplingDurationS_;
    /**
     * <code>float sampling_duration_s = 2;</code>
     * @return The samplingDurationS.
     */
    @java.lang.Override
    public float getSamplingDurationS() {
      return samplingDurationS_;
    }

    public static final int SAMPLING_INTERVAL_S_FIELD_NUMBER = 3;
    private float samplingIntervalS_;
    /**
     * <code>float sampling_interval_s = 3;</code>
     * @return The samplingIntervalS.
     */
    @java.lang.Override
    public float getSamplingIntervalS() {
      return samplingIntervalS_;
    }

    public static final int START_DATE_FIELD_NUMBER = 4;
    private volatile java.lang.Object startDate_;
    /**
     * <pre>
     * used when you want something like "get the samples since X date/time"
     * </pre>
     *
     * <code>string start_date = 4;</code>
     * @return The startDate.
     */
    @java.lang.Override
    public java.lang.String getStartDate() {
      java.lang.Object ref = startDate_;
      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();
        startDate_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * used when you want something like "get the samples since X date/time"
     * </pre>
     *
     * <code>string start_date = 4;</code>
     * @return The bytes for startDate.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getStartDateBytes() {
      java.lang.Object ref = startDate_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        startDate_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int END_DATE_FIELD_NUMBER = 5;
    private volatile java.lang.Object endDate_;
    /**
     * <pre>
     * used when you want something like "get the samples until X date/time"
     * </pre>
     *
     * <code>string end_date = 5;</code>
     * @return The endDate.
     */
    @java.lang.Override
    public java.lang.String getEndDate() {
      java.lang.Object ref = endDate_;
      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();
        endDate_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * used when you want something like "get the samples until X date/time"
     * </pre>
     *
     * <code>string end_date = 5;</code>
     * @return The bytes for endDate.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getEndDateBytes() {
      java.lang.Object ref = endDate_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        endDate_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (kpiId_ != null) {
        output.writeMessage(1, getKpiId());
      }
      if (samplingDurationS_ != 0F) {
        output.writeFloat(2, samplingDurationS_);
      }
      if (samplingIntervalS_ != 0F) {
        output.writeFloat(3, samplingIntervalS_);
      }
      if (!getStartDateBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, startDate_);
      }
      if (!getEndDateBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, endDate_);
      }
      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 (samplingDurationS_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(2, samplingDurationS_);
      }
      if (samplingIntervalS_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(3, samplingIntervalS_);
      }
      if (!getStartDateBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, startDate_);
      }
      if (!getEndDateBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, endDate_);
      }
      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 (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 (!getStartDate()
          .equals(other.getStartDate())) return false;
      if (!getEndDate()
          .equals(other.getEndDate())) 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) + 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());
      hash = (37 * hash) + START_DATE_FIELD_NUMBER;
      hash = (53 * hash) + getStartDate().hashCode();
      hash = (37 * hash) + END_DATE_FIELD_NUMBER;
      hash = (53 * hash) + getEndDate().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 (kpiIdBuilder_ == null) {
          kpiId_ = null;
        } else {
          kpiId_ = null;
          kpiIdBuilder_ = null;
        }
        samplingDurationS_ = 0F;

        samplingIntervalS_ = 0F;

        startDate_ = "";

        endDate_ = "";

        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 (kpiIdBuilder_ == null) {
          result.kpiId_ = kpiId_;
        } else {
          result.kpiId_ = kpiIdBuilder_.build();
        }
        result.samplingDurationS_ = samplingDurationS_;
        result.samplingIntervalS_ = samplingIntervalS_;
        result.startDate_ = startDate_;
        result.endDate_ = endDate_;
        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.hasKpiId()) {
          mergeKpiId(other.getKpiId());
        }
        if (other.getSamplingDurationS() != 0F) {
          setSamplingDurationS(other.getSamplingDurationS());
        }
        if (other.getSamplingIntervalS() != 0F) {
          setSamplingIntervalS(other.getSamplingIntervalS());
        }
        if (!other.getStartDate().isEmpty()) {
          startDate_ = other.startDate_;
          onChanged();
        }
        if (!other.getEndDate().isEmpty()) {
          endDate_ = other.endDate_;
          onChanged();
        }
        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.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 samplingDurationS_ ;
      /**
       * <code>float sampling_duration_s = 2;</code>
       * @return The samplingDurationS.
       */
      @java.lang.Override
      public float getSamplingDurationS() {
        return samplingDurationS_;
      }
      /**
       * <code>float sampling_duration_s = 2;</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 = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearSamplingDurationS() {
        
        samplingDurationS_ = 0F;
        onChanged();
        return this;
      }

      private float samplingIntervalS_ ;
      /**
       * <code>float sampling_interval_s = 3;</code>
       * @return The samplingIntervalS.
       */
      @java.lang.Override
      public float getSamplingIntervalS() {
        return samplingIntervalS_;
      }
      /**
       * <code>float sampling_interval_s = 3;</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 = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearSamplingIntervalS() {
        
        samplingIntervalS_ = 0F;
        onChanged();
        return this;
      }

      private java.lang.Object startDate_ = "";
      /**
       * <pre>
       * used when you want something like "get the samples since X date/time"
       * </pre>
       *
       * <code>string start_date = 4;</code>
       * @return The startDate.
       */
      public java.lang.String getStartDate() {
        java.lang.Object ref = startDate_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          startDate_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * used when you want something like "get the samples since X date/time"
       * </pre>
       *
       * <code>string start_date = 4;</code>
       * @return The bytes for startDate.
       */
      public com.google.protobuf.ByteString
          getStartDateBytes() {
        java.lang.Object ref = startDate_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          startDate_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * used when you want something like "get the samples since X date/time"
       * </pre>
       *
       * <code>string start_date = 4;</code>
       * @param value The startDate to set.
       * @return This builder for chaining.
       */
      public Builder setStartDate(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        startDate_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * used when you want something like "get the samples since X date/time"
       * </pre>
       *
       * <code>string start_date = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearStartDate() {
        
        startDate_ = getDefaultInstance().getStartDate();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * used when you want something like "get the samples since X date/time"
       * </pre>
       *
       * <code>string start_date = 4;</code>
       * @param value The bytes for startDate to set.
       * @return This builder for chaining.
       */
      public Builder setStartDateBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        startDate_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object endDate_ = "";
      /**
       * <pre>
       * used when you want something like "get the samples until X date/time"
       * </pre>
       *
       * <code>string end_date = 5;</code>
       * @return The endDate.
       */
      public java.lang.String getEndDate() {
        java.lang.Object ref = endDate_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          endDate_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * used when you want something like "get the samples until X date/time"
       * </pre>
       *
       * <code>string end_date = 5;</code>
       * @return The bytes for endDate.
       */
      public com.google.protobuf.ByteString
          getEndDateBytes() {
        java.lang.Object ref = endDate_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          endDate_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * used when you want something like "get the samples until X date/time"
       * </pre>
       *
       * <code>string end_date = 5;</code>
       * @param value The endDate to set.
       * @return This builder for chaining.
       */
      public Builder setEndDate(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        endDate_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * used when you want something like "get the samples until X date/time"
       * </pre>
       *
       * <code>string end_date = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearEndDate() {
        
        endDate_ = getDefaultInstance().getEndDate();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * used when you want something like "get the samples until X date/time"
       * </pre>
       *
       * <code>string end_date = 5;</code>
       * @param value The bytes for endDate to set.
       * @return This builder for chaining.
       */
      public Builder setEndDateBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        endDate_ = value;
        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.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>repeated .monitoring.KpiList kpi_list = 2;</code>
     */
    java.util.List<monitoring.Monitoring.KpiList> 
        getKpiListList();
    /**
     * <code>repeated .monitoring.KpiList kpi_list = 2;</code>
     */
    monitoring.Monitoring.KpiList getKpiList(int index);
    /**
     * <code>repeated .monitoring.KpiList kpi_list = 2;</code>
     */
    int getKpiListCount();
    /**
     * <code>repeated .monitoring.KpiList kpi_list = 2;</code>
     */
    java.util.List<? extends monitoring.Monitoring.KpiListOrBuilder> 
        getKpiListOrBuilderList();
    /**
     * <code>repeated .monitoring.KpiList kpi_list = 2;</code>
     */
    monitoring.Monitoring.KpiListOrBuilder getKpiListOrBuilder(
        int index);
  }
  /**
   * 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() {
      kpiList_ = java.util.Collections.emptyList();
    }

    @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();
      }
      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.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: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                kpiList_ = new java.util.ArrayList<monitoring.Monitoring.KpiList>();
                mutable_bitField0_ |= 0x00000001;
              }
              kpiList_.add(
                  input.readMessage(monitoring.Monitoring.KpiList.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)) {
          kpiList_ = java.util.Collections.unmodifiableList(kpiList_);
        }
        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 java.util.List<monitoring.Monitoring.KpiList> kpiList_;
    /**
     * <code>repeated .monitoring.KpiList kpi_list = 2;</code>
     */
    @java.lang.Override
    public java.util.List<monitoring.Monitoring.KpiList> getKpiListList() {
      return kpiList_;
    }
    /**
     * <code>repeated .monitoring.KpiList kpi_list = 2;</code>
     */
    @java.lang.Override
    public java.util.List<? extends monitoring.Monitoring.KpiListOrBuilder> 
        getKpiListOrBuilderList() {
      return kpiList_;
    }
    /**
     * <code>repeated .monitoring.KpiList kpi_list = 2;</code>
     */
    @java.lang.Override
    public int getKpiListCount() {
      return kpiList_.size();
    }
    /**
     * <code>repeated .monitoring.KpiList kpi_list = 2;</code>
     */
    @java.lang.Override
    public monitoring.Monitoring.KpiList getKpiList(int index) {
      return kpiList_.get(index);
    }
    /**
     * <code>repeated .monitoring.KpiList kpi_list = 2;</code>
     */
    @java.lang.Override
    public monitoring.Monitoring.KpiListOrBuilder getKpiListOrBuilder(
        int index) {
      return kpiList_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (subsId_ != null) {
        output.writeMessage(1, getSubsId());
      }
      for (int i = 0; i < kpiList_.size(); i++) {
        output.writeMessage(2, kpiList_.get(i));
      }
      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());
      }
      for (int i = 0; i < kpiList_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, kpiList_.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.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 (!getKpiListList()
          .equals(other.getKpiListList())) 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 (getKpiListCount() > 0) {
        hash = (37 * hash) + KPI_LIST_FIELD_NUMBER;
        hash = (53 * hash) + getKpiListList().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) {
          getKpiListFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (subsIdBuilder_ == null) {
          subsId_ = null;
        } else {
          subsId_ = null;
          subsIdBuilder_ = null;
        }
        if (kpiListBuilder_ == null) {
          kpiList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          kpiListBuilder_.clear();
        }
        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);
        int from_bitField0_ = bitField0_;
        if (subsIdBuilder_ == null) {
          result.subsId_ = subsId_;
        } else {
          result.subsId_ = subsIdBuilder_.build();
        }
        if (kpiListBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            kpiList_ = java.util.Collections.unmodifiableList(kpiList_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          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 (kpiListBuilder_ == null) {
          if (!other.kpiList_.isEmpty()) {
            if (kpiList_.isEmpty()) {
              kpiList_ = other.kpiList_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureKpiListIsMutable();
              kpiList_.addAll(other.kpiList_);
            }
            onChanged();
          }
        } else {
          if (!other.kpiList_.isEmpty()) {
            if (kpiListBuilder_.isEmpty()) {
              kpiListBuilder_.dispose();
              kpiListBuilder_ = null;
              kpiList_ = other.kpiList_;
              bitField0_ = (bitField0_ & ~0x00000001);
              kpiListBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getKpiListFieldBuilder() : null;
            } else {
              kpiListBuilder_.addAllMessages(other.kpiList_);
            }
          }
        }
        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 int bitField0_;

      private monitoring.Monitoring.SubscriptionID subsId_;
      private com.google.protobuf.SingleFieldBuilderV3<
          monitoring.Monitoring.SubscriptionID, monitoring.Monitoring.SubscriptionID.Builder, monitoring.Monitoring.SubscriptionIDOrBuilder> subsIdBuilder_;
      /**
       * <code>.monitoring.SubscriptionID subs_id = 1;</code>
       * @return Whether the subsId field is set.
       */
      public boolean hasSubsId() {
        return 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 java.util.List<monitoring.Monitoring.KpiList> kpiList_ =
        java.util.Collections.emptyList();
      private void ensureKpiListIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          kpiList_ = new java.util.ArrayList<monitoring.Monitoring.KpiList>(kpiList_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          monitoring.Monitoring.KpiList, monitoring.Monitoring.KpiList.Builder, monitoring.Monitoring.KpiListOrBuilder> kpiListBuilder_;

      /**
       * <code>repeated .monitoring.KpiList kpi_list = 2;</code>
       */
      public java.util.List<monitoring.Monitoring.KpiList> getKpiListList() {
        if (kpiListBuilder_ == null) {
          return java.util.Collections.unmodifiableList(kpiList_);
        } else {
          return kpiListBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .monitoring.KpiList kpi_list = 2;</code>
       */
      public int getKpiListCount() {
        if (kpiListBuilder_ == null) {
          return kpiList_.size();
        } else {
          return kpiListBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .monitoring.KpiList kpi_list = 2;</code>
       */
      public monitoring.Monitoring.KpiList getKpiList(int index) {
        if (kpiListBuilder_ == null) {
          return kpiList_.get(index);
        } else {
          return kpiListBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .monitoring.KpiList kpi_list = 2;</code>
       */
      public Builder setKpiList(
          int index, monitoring.Monitoring.KpiList value) {
        if (kpiListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureKpiListIsMutable();
          kpiList_.set(index, value);
          onChanged();
        } else {
          kpiListBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.KpiList kpi_list = 2;</code>
       */
      public Builder setKpiList(
          int index, monitoring.Monitoring.KpiList.Builder builderForValue) {
        if (kpiListBuilder_ == null) {
          ensureKpiListIsMutable();
          kpiList_.set(index, builderForValue.build());
          onChanged();
        } else {
          kpiListBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.KpiList kpi_list = 2;</code>
       */
      public Builder addKpiList(monitoring.Monitoring.KpiList value) {
        if (kpiListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureKpiListIsMutable();
          kpiList_.add(value);
          onChanged();
        } else {
          kpiListBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.KpiList kpi_list = 2;</code>
       */
      public Builder addKpiList(
          int index, monitoring.Monitoring.KpiList value) {
        if (kpiListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureKpiListIsMutable();
          kpiList_.add(index, value);
          onChanged();
        } else {
          kpiListBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.KpiList kpi_list = 2;</code>
       */
      public Builder addKpiList(
          monitoring.Monitoring.KpiList.Builder builderForValue) {
        if (kpiListBuilder_ == null) {
          ensureKpiListIsMutable();
          kpiList_.add(builderForValue.build());
          onChanged();
        } else {
          kpiListBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.KpiList kpi_list = 2;</code>
       */
      public Builder addKpiList(
          int index, monitoring.Monitoring.KpiList.Builder builderForValue) {
        if (kpiListBuilder_ == null) {
          ensureKpiListIsMutable();
          kpiList_.add(index, builderForValue.build());
          onChanged();
        } else {
          kpiListBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.KpiList kpi_list = 2;</code>
       */
      public Builder addAllKpiList(
          java.lang.Iterable<? extends monitoring.Monitoring.KpiList> values) {
        if (kpiListBuilder_ == null) {
          ensureKpiListIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, kpiList_);
          onChanged();
        } else {
          kpiListBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.KpiList kpi_list = 2;</code>
       */
      public Builder clearKpiList() {
        if (kpiListBuilder_ == null) {
          kpiList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          kpiListBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.KpiList kpi_list = 2;</code>
       */
      public Builder removeKpiList(int index) {
        if (kpiListBuilder_ == null) {
          ensureKpiListIsMutable();
          kpiList_.remove(index);
          onChanged();
        } else {
          kpiListBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.KpiList kpi_list = 2;</code>
       */
      public monitoring.Monitoring.KpiList.Builder getKpiListBuilder(
          int index) {
        return getKpiListFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .monitoring.KpiList kpi_list = 2;</code>
       */
      public monitoring.Monitoring.KpiListOrBuilder getKpiListOrBuilder(
          int index) {
        if (kpiListBuilder_ == null) {
          return kpiList_.get(index);  } else {
          return kpiListBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .monitoring.KpiList kpi_list = 2;</code>
       */
      public java.util.List<? extends monitoring.Monitoring.KpiListOrBuilder> 
           getKpiListOrBuilderList() {
        if (kpiListBuilder_ != null) {
          return kpiListBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(kpiList_);
        }
      }
      /**
       * <code>repeated .monitoring.KpiList kpi_list = 2;</code>
       */
      public monitoring.Monitoring.KpiList.Builder addKpiListBuilder() {
        return getKpiListFieldBuilder().addBuilder(
            monitoring.Monitoring.KpiList.getDefaultInstance());
      }
      /**
       * <code>repeated .monitoring.KpiList kpi_list = 2;</code>
       */
      public monitoring.Monitoring.KpiList.Builder addKpiListBuilder(
          int index) {
        return getKpiListFieldBuilder().addBuilder(
            index, monitoring.Monitoring.KpiList.getDefaultInstance());
      }
      /**
       * <code>repeated .monitoring.KpiList kpi_list = 2;</code>
       */
      public java.util.List<monitoring.Monitoring.KpiList.Builder> 
           getKpiListBuilderList() {
        return getKpiListFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          monitoring.Monitoring.KpiList, monitoring.Monitoring.KpiList.Builder, monitoring.Monitoring.KpiListOrBuilder> 
          getKpiListFieldBuilder() {
        if (kpiListBuilder_ == null) {
          kpiListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              monitoring.Monitoring.KpiList, monitoring.Monitoring.KpiList.Builder, monitoring.Monitoring.KpiListOrBuilder>(
                  kpiList_,
                  ((bitField0_ & 0x00000001) != 0),
                  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 SubsIDListOrBuilder extends
      // @@protoc_insertion_point(interface_extends:monitoring.SubsIDList)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code>
     */
    java.util.List<monitoring.Monitoring.SubscriptionID> 
        getSubsListList();
    /**
     * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code>
     */
    monitoring.Monitoring.SubscriptionID getSubsList(int index);
    /**
     * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code>
     */
    int getSubsListCount();
    /**
     * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code>
     */
    java.util.List<? extends monitoring.Monitoring.SubscriptionIDOrBuilder> 
        getSubsListOrBuilderList();
    /**
     * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code>
     */
    monitoring.Monitoring.SubscriptionIDOrBuilder getSubsListOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code monitoring.SubsIDList}
   */
  public static final class SubsIDList extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:monitoring.SubsIDList)
      SubsIDListOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SubsIDList.newBuilder() to construct.
    private SubsIDList(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private SubsIDList() {
      subsList_ = java.util.Collections.emptyList();
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private SubsIDList(
        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)) {
                subsList_ = new java.util.ArrayList<monitoring.Monitoring.SubscriptionID>();
                mutable_bitField0_ |= 0x00000001;
              }
              subsList_.add(
                  input.readMessage(monitoring.Monitoring.SubscriptionID.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)) {
          subsList_ = java.util.Collections.unmodifiableList(subsList_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return monitoring.Monitoring.internal_static_monitoring_SubsIDList_descriptor;
    }

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

    public static final int SUBS_LIST_FIELD_NUMBER = 1;
    private java.util.List<monitoring.Monitoring.SubscriptionID> subsList_;
    /**
     * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code>
     */
    @java.lang.Override
    public java.util.List<monitoring.Monitoring.SubscriptionID> getSubsListList() {
      return subsList_;
    }
    /**
     * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends monitoring.Monitoring.SubscriptionIDOrBuilder> 
        getSubsListOrBuilderList() {
      return subsList_;
    }
    /**
     * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code>
     */
    @java.lang.Override
    public int getSubsListCount() {
      return subsList_.size();
    }
    /**
     * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code>
     */
    @java.lang.Override
    public monitoring.Monitoring.SubscriptionID getSubsList(int index) {
      return subsList_.get(index);
    }
    /**
     * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code>
     */
    @java.lang.Override
    public monitoring.Monitoring.SubscriptionIDOrBuilder getSubsListOrBuilder(
        int index) {
      return subsList_.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 < subsList_.size(); i++) {
        output.writeMessage(1, subsList_.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 < subsList_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, subsList_.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.SubsIDList)) {
        return super.equals(obj);
      }
      monitoring.Monitoring.SubsIDList other = (monitoring.Monitoring.SubsIDList) obj;

      if (!getSubsListList()
          .equals(other.getSubsListList())) 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 (getSubsListCount() > 0) {
        hash = (37 * hash) + SUBS_LIST_FIELD_NUMBER;
        hash = (53 * hash) + getSubsListList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static monitoring.Monitoring.SubsIDList parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static monitoring.Monitoring.SubsIDList parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static monitoring.Monitoring.SubsIDList parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static monitoring.Monitoring.SubsIDList 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.SubsIDList parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static monitoring.Monitoring.SubsIDList parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static monitoring.Monitoring.SubsIDList parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static monitoring.Monitoring.SubsIDList 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.SubsIDList parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static monitoring.Monitoring.SubsIDList 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.SubsIDList parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static monitoring.Monitoring.SubsIDList 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.SubsIDList 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.SubsIDList}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:monitoring.SubsIDList)
        monitoring.Monitoring.SubsIDListOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return monitoring.Monitoring.internal_static_monitoring_SubsIDList_descriptor;
      }

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

      // Construct using monitoring.Monitoring.SubsIDList.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getSubsListFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (subsListBuilder_ == null) {
          subsList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          subsListBuilder_.clear();
        }
        return this;
      }

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

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

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

      @java.lang.Override
      public monitoring.Monitoring.SubsIDList buildPartial() {
        monitoring.Monitoring.SubsIDList result = new monitoring.Monitoring.SubsIDList(this);
        int from_bitField0_ = bitField0_;
        if (subsListBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            subsList_ = java.util.Collections.unmodifiableList(subsList_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.subsList_ = subsList_;
        } else {
          result.subsList_ = subsListBuilder_.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.SubsIDList) {
          return mergeFrom((monitoring.Monitoring.SubsIDList)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(monitoring.Monitoring.SubsIDList other) {
        if (other == monitoring.Monitoring.SubsIDList.getDefaultInstance()) return this;
        if (subsListBuilder_ == null) {
          if (!other.subsList_.isEmpty()) {
            if (subsList_.isEmpty()) {
              subsList_ = other.subsList_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureSubsListIsMutable();
              subsList_.addAll(other.subsList_);
            }
            onChanged();
          }
        } else {
          if (!other.subsList_.isEmpty()) {
            if (subsListBuilder_.isEmpty()) {
              subsListBuilder_.dispose();
              subsListBuilder_ = null;
              subsList_ = other.subsList_;
              bitField0_ = (bitField0_ & ~0x00000001);
              subsListBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getSubsListFieldBuilder() : null;
            } else {
              subsListBuilder_.addAllMessages(other.subsList_);
            }
          }
        }
        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.SubsIDList parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (monitoring.Monitoring.SubsIDList) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

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

      private com.google.protobuf.RepeatedFieldBuilderV3<
          monitoring.Monitoring.SubscriptionID, monitoring.Monitoring.SubscriptionID.Builder, monitoring.Monitoring.SubscriptionIDOrBuilder> subsListBuilder_;

      /**
       * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code>
       */
      public java.util.List<monitoring.Monitoring.SubscriptionID> getSubsListList() {
        if (subsListBuilder_ == null) {
          return java.util.Collections.unmodifiableList(subsList_);
        } else {
          return subsListBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code>
       */
      public int getSubsListCount() {
        if (subsListBuilder_ == null) {
          return subsList_.size();
        } else {
          return subsListBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code>
       */
      public monitoring.Monitoring.SubscriptionID getSubsList(int index) {
        if (subsListBuilder_ == null) {
          return subsList_.get(index);
        } else {
          return subsListBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code>
       */
      public Builder setSubsList(
          int index, monitoring.Monitoring.SubscriptionID value) {
        if (subsListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSubsListIsMutable();
          subsList_.set(index, value);
          onChanged();
        } else {
          subsListBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code>
       */
      public Builder setSubsList(
          int index, monitoring.Monitoring.SubscriptionID.Builder builderForValue) {
        if (subsListBuilder_ == null) {
          ensureSubsListIsMutable();
          subsList_.set(index, builderForValue.build());
          onChanged();
        } else {
          subsListBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code>
       */
      public Builder addSubsList(monitoring.Monitoring.SubscriptionID value) {
        if (subsListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSubsListIsMutable();
          subsList_.add(value);
          onChanged();
        } else {
          subsListBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code>
       */
      public Builder addSubsList(
          int index, monitoring.Monitoring.SubscriptionID value) {
        if (subsListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSubsListIsMutable();
          subsList_.add(index, value);
          onChanged();
        } else {
          subsListBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code>
       */
      public Builder addSubsList(
          monitoring.Monitoring.SubscriptionID.Builder builderForValue) {
        if (subsListBuilder_ == null) {
          ensureSubsListIsMutable();
          subsList_.add(builderForValue.build());
          onChanged();
        } else {
          subsListBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code>
       */
      public Builder addSubsList(
          int index, monitoring.Monitoring.SubscriptionID.Builder builderForValue) {
        if (subsListBuilder_ == null) {
          ensureSubsListIsMutable();
          subsList_.add(index, builderForValue.build());
          onChanged();
        } else {
          subsListBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code>
       */
      public Builder addAllSubsList(
          java.lang.Iterable<? extends monitoring.Monitoring.SubscriptionID> values) {
        if (subsListBuilder_ == null) {
          ensureSubsListIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, subsList_);
          onChanged();
        } else {
          subsListBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code>
       */
      public Builder clearSubsList() {
        if (subsListBuilder_ == null) {
          subsList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          subsListBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code>
       */
      public Builder removeSubsList(int index) {
        if (subsListBuilder_ == null) {
          ensureSubsListIsMutable();
          subsList_.remove(index);
          onChanged();
        } else {
          subsListBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code>
       */
      public monitoring.Monitoring.SubscriptionID.Builder getSubsListBuilder(
          int index) {
        return getSubsListFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code>
       */
      public monitoring.Monitoring.SubscriptionIDOrBuilder getSubsListOrBuilder(
          int index) {
        if (subsListBuilder_ == null) {
          return subsList_.get(index);  } else {
          return subsListBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code>
       */
      public java.util.List<? extends monitoring.Monitoring.SubscriptionIDOrBuilder> 
           getSubsListOrBuilderList() {
        if (subsListBuilder_ != null) {
          return subsListBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(subsList_);
        }
      }
      /**
       * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code>
       */
      public monitoring.Monitoring.SubscriptionID.Builder addSubsListBuilder() {
        return getSubsListFieldBuilder().addBuilder(
            monitoring.Monitoring.SubscriptionID.getDefaultInstance());
      }
      /**
       * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code>
       */
      public monitoring.Monitoring.SubscriptionID.Builder addSubsListBuilder(
          int index) {
        return getSubsListFieldBuilder().addBuilder(
            index, monitoring.Monitoring.SubscriptionID.getDefaultInstance());
      }
      /**
       * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code>
       */
      public java.util.List<monitoring.Monitoring.SubscriptionID.Builder> 
           getSubsListBuilderList() {
        return getSubsListFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          monitoring.Monitoring.SubscriptionID, monitoring.Monitoring.SubscriptionID.Builder, monitoring.Monitoring.SubscriptionIDOrBuilder> 
          getSubsListFieldBuilder() {
        if (subsListBuilder_ == null) {
          subsListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              monitoring.Monitoring.SubscriptionID, monitoring.Monitoring.SubscriptionID.Builder, monitoring.Monitoring.SubscriptionIDOrBuilder>(
                  subsList_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          subsList_ = null;
        }
        return subsListBuilder_;
      }
      @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.SubsIDList)
    }

    // @@protoc_insertion_point(class_scope:monitoring.SubsIDList)
    private static final monitoring.Monitoring.SubsIDList DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new monitoring.Monitoring.SubsIDList();
    }

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

    private static final com.google.protobuf.Parser<SubsIDList>
        PARSER = new com.google.protobuf.AbstractParser<SubsIDList>() {
      @java.lang.Override
      public SubsIDList parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new SubsIDList(input, extensionRegistry);
      }
    };

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

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

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

  }

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

    /**
     * <code>string alarm_description = 1;</code>
     * @return The alarmDescription.
     */
    java.lang.String getAlarmDescription();
    /**
     * <code>string alarm_description = 1;</code>
     * @return The bytes for alarmDescription.
     */
    com.google.protobuf.ByteString
        getAlarmDescriptionBytes();

    /**
     * <code>string name = 2;</code>
     * @return The name.
     */
    java.lang.String getName();
    /**
     * <code>string name = 2;</code>
     * @return The bytes for name.
     */
    com.google.protobuf.ByteString
        getNameBytes();

    /**
     * <code>.monitoring.KpiId kpi_id = 3;</code>
     * @return Whether the kpiId field is set.
     */
    boolean hasKpiId();
    /**
     * <code>.monitoring.KpiId kpi_id = 3;</code>
     * @return The kpiId.
     */
    monitoring.Monitoring.KpiId getKpiId();
    /**
     * <code>.monitoring.KpiId kpi_id = 3;</code>
     */
    monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder();

    /**
     * <code>.monitoring.KpiValueRange kpi_value_range = 4;</code>
     * @return Whether the kpiValueRange field is set.
     */
    boolean hasKpiValueRange();
    /**
     * <code>.monitoring.KpiValueRange kpi_value_range = 4;</code>
     * @return The kpiValueRange.
     */
    monitoring.Monitoring.KpiValueRange getKpiValueRange();
    /**
     * <code>.monitoring.KpiValueRange kpi_value_range = 4;</code>
     */
    monitoring.Monitoring.KpiValueRangeOrBuilder getKpiValueRangeOrBuilder();

    /**
     * <code>string timestamp = 5;</code>
     * @return The timestamp.
     */
    java.lang.String getTimestamp();
    /**
     * <code>string timestamp = 5;</code>
     * @return The bytes for timestamp.
     */
    com.google.protobuf.ByteString
        getTimestampBytes();
  }
  /**
   * 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_ = "";
      timestamp_ = "";
    }

    @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: {
              java.lang.String s = input.readStringRequireUtf8();

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

              name_ = s;
              break;
            }
            case 26: {
              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 34: {
              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 42: {
              java.lang.String s = input.readStringRequireUtf8();

              timestamp_ = s;
              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_DESCRIPTION_FIELD_NUMBER = 1;
    private volatile java.lang.Object alarmDescription_;
    /**
     * <code>string alarm_description = 1;</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 = 1;</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 = 2;
    private volatile java.lang.Object name_;
    /**
     * <code>string name = 2;</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 = 2;</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 = 3;
    private monitoring.Monitoring.KpiId kpiId_;
    /**
     * <code>.monitoring.KpiId kpi_id = 3;</code>
     * @return Whether the kpiId field is set.
     */
    @java.lang.Override
    public boolean hasKpiId() {
      return kpiId_ != null;
    }
    /**
     * <code>.monitoring.KpiId kpi_id = 3;</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 = 3;</code>
     */
    @java.lang.Override
    public monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder() {
      return getKpiId();
    }

    public static final int KPI_VALUE_RANGE_FIELD_NUMBER = 4;
    private monitoring.Monitoring.KpiValueRange kpiValueRange_;
    /**
     * <code>.monitoring.KpiValueRange kpi_value_range = 4;</code>
     * @return Whether the kpiValueRange field is set.
     */
    @java.lang.Override
    public boolean hasKpiValueRange() {
      return kpiValueRange_ != null;
    }
    /**
     * <code>.monitoring.KpiValueRange kpi_value_range = 4;</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 = 4;</code>
     */
    @java.lang.Override
    public monitoring.Monitoring.KpiValueRangeOrBuilder getKpiValueRangeOrBuilder() {
      return getKpiValueRange();
    }

    public static final int TIMESTAMP_FIELD_NUMBER = 5;
    private volatile java.lang.Object timestamp_;
    /**
     * <code>string timestamp = 5;</code>
     * @return The timestamp.
     */
    @java.lang.Override
    public java.lang.String getTimestamp() {
      java.lang.Object ref = timestamp_;
      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();
        timestamp_ = s;
        return s;
      }
    }
    /**
     * <code>string timestamp = 5;</code>
     * @return The bytes for timestamp.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTimestampBytes() {
      java.lang.Object ref = timestamp_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        timestamp_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getAlarmDescriptionBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, alarmDescription_);
      }
      if (!getNameBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_);
      }
      if (kpiId_ != null) {
        output.writeMessage(3, getKpiId());
      }
      if (kpiValueRange_ != null) {
        output.writeMessage(4, getKpiValueRange());
      }
      if (!getTimestampBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, timestamp_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!getAlarmDescriptionBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, alarmDescription_);
      }
      if (!getNameBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_);
      }
      if (kpiId_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getKpiId());
      }
      if (kpiValueRange_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getKpiValueRange());
      }
      if (!getTimestampBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, timestamp_);
      }
      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 (!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 (!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();
      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();
      }
      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();
        alarmDescription_ = "";

        name_ = "";

        if (kpiIdBuilder_ == null) {
          kpiId_ = null;
        } else {
          kpiId_ = null;
          kpiIdBuilder_ = null;
        }
        if (kpiValueRangeBuilder_ == null) {
          kpiValueRange_ = null;
        } else {
          kpiValueRange_ = null;
          kpiValueRangeBuilder_ = null;
        }
        timestamp_ = "";

        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);
        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();
        }
        result.timestamp_ = timestamp_;
        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.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.getTimestamp().isEmpty()) {
          timestamp_ = other.timestamp_;
          onChanged();
        }
        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 java.lang.Object alarmDescription_ = "";
      /**
       * <code>string alarm_description = 1;</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 = 1;</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 = 1;</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 = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearAlarmDescription() {
        
        alarmDescription_ = getDefaultInstance().getAlarmDescription();
        onChanged();
        return this;
      }
      /**
       * <code>string alarm_description = 1;</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 = 2;</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 = 2;</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 = 2;</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 = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearName() {
        
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * <code>string name = 2;</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 = 3;</code>
       * @return Whether the kpiId field is set.
       */
      public boolean hasKpiId() {
        return kpiIdBuilder_ != null || kpiId_ != null;
      }
      /**
       * <code>.monitoring.KpiId kpi_id = 3;</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 = 3;</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 = 3;</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 = 3;</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 = 3;</code>
       */
      public Builder clearKpiId() {
        if (kpiIdBuilder_ == null) {
          kpiId_ = null;
          onChanged();
        } else {
          kpiId_ = null;
          kpiIdBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.monitoring.KpiId kpi_id = 3;</code>
       */
      public monitoring.Monitoring.KpiId.Builder getKpiIdBuilder() {
        
        onChanged();
        return getKpiIdFieldBuilder().getBuilder();
      }
      /**
       * <code>.monitoring.KpiId kpi_id = 3;</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 = 3;</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 = 4;</code>
       * @return Whether the kpiValueRange field is set.
       */
      public boolean hasKpiValueRange() {
        return kpiValueRangeBuilder_ != null || kpiValueRange_ != null;
      }
      /**
       * <code>.monitoring.KpiValueRange kpi_value_range = 4;</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 = 4;</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 = 4;</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 = 4;</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 = 4;</code>
       */
      public Builder clearKpiValueRange() {
        if (kpiValueRangeBuilder_ == null) {
          kpiValueRange_ = null;
          onChanged();
        } else {
          kpiValueRange_ = null;
          kpiValueRangeBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.monitoring.KpiValueRange kpi_value_range = 4;</code>
       */
      public monitoring.Monitoring.KpiValueRange.Builder getKpiValueRangeBuilder() {
        
        onChanged();
        return getKpiValueRangeFieldBuilder().getBuilder();
      }
      /**
       * <code>.monitoring.KpiValueRange kpi_value_range = 4;</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 = 4;</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 java.lang.Object timestamp_ = "";
      /**
       * <code>string timestamp = 5;</code>
       * @return The timestamp.
       */
      public java.lang.String getTimestamp() {
        java.lang.Object ref = timestamp_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          timestamp_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string timestamp = 5;</code>
       * @return The bytes for timestamp.
       */
      public com.google.protobuf.ByteString
          getTimestampBytes() {
        java.lang.Object ref = timestamp_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          timestamp_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string timestamp = 5;</code>
       * @param value The timestamp to set.
       * @return This builder for chaining.
       */
      public Builder setTimestamp(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        timestamp_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string timestamp = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearTimestamp() {
        
        timestamp_ = getDefaultInstance().getTimestamp();
        onChanged();
        return this;
      }
      /**
       * <code>string timestamp = 5;</code>
       * @param value The bytes for timestamp to set.
       * @return This builder for chaining.
       */
      public Builder setTimestampBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        timestamp_ = value;
        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.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 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.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.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.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_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_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 (alarmId_ != null) {
        output.writeMessage(1, getAlarmId());
      }
      if (!getTextBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, text_);
      }
      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 (alarmId_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getAlarmId());
      }
      if (!getTextBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, text_);
      }
      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.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 (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 (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 (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.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 (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_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 (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.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.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.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.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.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 AlarmIDListOrBuilder extends
      // @@protoc_insertion_point(interface_extends:monitoring.AlarmIDList)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated .monitoring.AlarmID alarm_list = 1;</code>
     */
    java.util.List<monitoring.Monitoring.AlarmID> 
        getAlarmListList();
    /**
     * <code>repeated .monitoring.AlarmID alarm_list = 1;</code>
     */
    monitoring.Monitoring.AlarmID getAlarmList(int index);
    /**
     * <code>repeated .monitoring.AlarmID alarm_list = 1;</code>
     */
    int getAlarmListCount();
    /**
     * <code>repeated .monitoring.AlarmID alarm_list = 1;</code>
     */
    java.util.List<? extends monitoring.Monitoring.AlarmIDOrBuilder> 
        getAlarmListOrBuilderList();
    /**
     * <code>repeated .monitoring.AlarmID alarm_list = 1;</code>
     */
    monitoring.Monitoring.AlarmIDOrBuilder getAlarmListOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code monitoring.AlarmIDList}
   */
  public static final class AlarmIDList extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:monitoring.AlarmIDList)
      AlarmIDListOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AlarmIDList.newBuilder() to construct.
    private AlarmIDList(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AlarmIDList() {
      alarmList_ = java.util.Collections.emptyList();
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private AlarmIDList(
        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)) {
                alarmList_ = new java.util.ArrayList<monitoring.Monitoring.AlarmID>();
                mutable_bitField0_ |= 0x00000001;
              }
              alarmList_.add(
                  input.readMessage(monitoring.Monitoring.AlarmID.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)) {
          alarmList_ = java.util.Collections.unmodifiableList(alarmList_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return monitoring.Monitoring.internal_static_monitoring_AlarmIDList_descriptor;
    }

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

    public static final int ALARM_LIST_FIELD_NUMBER = 1;
    private java.util.List<monitoring.Monitoring.AlarmID> alarmList_;
    /**
     * <code>repeated .monitoring.AlarmID alarm_list = 1;</code>
     */
    @java.lang.Override
    public java.util.List<monitoring.Monitoring.AlarmID> getAlarmListList() {
      return alarmList_;
    }
    /**
     * <code>repeated .monitoring.AlarmID alarm_list = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends monitoring.Monitoring.AlarmIDOrBuilder> 
        getAlarmListOrBuilderList() {
      return alarmList_;
    }
    /**
     * <code>repeated .monitoring.AlarmID alarm_list = 1;</code>
     */
    @java.lang.Override
    public int getAlarmListCount() {
      return alarmList_.size();
    }
    /**
     * <code>repeated .monitoring.AlarmID alarm_list = 1;</code>
     */
    @java.lang.Override
    public monitoring.Monitoring.AlarmID getAlarmList(int index) {
      return alarmList_.get(index);
    }
    /**
     * <code>repeated .monitoring.AlarmID alarm_list = 1;</code>
     */
    @java.lang.Override
    public monitoring.Monitoring.AlarmIDOrBuilder getAlarmListOrBuilder(
        int index) {
      return alarmList_.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 < alarmList_.size(); i++) {
        output.writeMessage(1, alarmList_.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 < alarmList_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, alarmList_.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.AlarmIDList)) {
        return super.equals(obj);
      }
      monitoring.Monitoring.AlarmIDList other = (monitoring.Monitoring.AlarmIDList) obj;

      if (!getAlarmListList()
          .equals(other.getAlarmListList())) 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 (getAlarmListCount() > 0) {
        hash = (37 * hash) + ALARM_LIST_FIELD_NUMBER;
        hash = (53 * hash) + getAlarmListList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static monitoring.Monitoring.AlarmIDList parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static monitoring.Monitoring.AlarmIDList parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static monitoring.Monitoring.AlarmIDList parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static monitoring.Monitoring.AlarmIDList 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.AlarmIDList parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static monitoring.Monitoring.AlarmIDList parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static monitoring.Monitoring.AlarmIDList parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static monitoring.Monitoring.AlarmIDList 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.AlarmIDList parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static monitoring.Monitoring.AlarmIDList 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.AlarmIDList parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static monitoring.Monitoring.AlarmIDList 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.AlarmIDList 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.AlarmIDList}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:monitoring.AlarmIDList)
        monitoring.Monitoring.AlarmIDListOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return monitoring.Monitoring.internal_static_monitoring_AlarmIDList_descriptor;
      }

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

      // Construct using monitoring.Monitoring.AlarmIDList.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getAlarmListFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (alarmListBuilder_ == null) {
          alarmList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          alarmListBuilder_.clear();
        }
        return this;
      }

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

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

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

      @java.lang.Override
      public monitoring.Monitoring.AlarmIDList buildPartial() {
        monitoring.Monitoring.AlarmIDList result = new monitoring.Monitoring.AlarmIDList(this);
        int from_bitField0_ = bitField0_;
        if (alarmListBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            alarmList_ = java.util.Collections.unmodifiableList(alarmList_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.alarmList_ = alarmList_;
        } else {
          result.alarmList_ = alarmListBuilder_.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.AlarmIDList) {
          return mergeFrom((monitoring.Monitoring.AlarmIDList)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(monitoring.Monitoring.AlarmIDList other) {
        if (other == monitoring.Monitoring.AlarmIDList.getDefaultInstance()) return this;
        if (alarmListBuilder_ == null) {
          if (!other.alarmList_.isEmpty()) {
            if (alarmList_.isEmpty()) {
              alarmList_ = other.alarmList_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureAlarmListIsMutable();
              alarmList_.addAll(other.alarmList_);
            }
            onChanged();
          }
        } else {
          if (!other.alarmList_.isEmpty()) {
            if (alarmListBuilder_.isEmpty()) {
              alarmListBuilder_.dispose();
              alarmListBuilder_ = null;
              alarmList_ = other.alarmList_;
              bitField0_ = (bitField0_ & ~0x00000001);
              alarmListBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getAlarmListFieldBuilder() : null;
            } else {
              alarmListBuilder_.addAllMessages(other.alarmList_);
            }
          }
        }
        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.AlarmIDList parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (monitoring.Monitoring.AlarmIDList) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

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

      private com.google.protobuf.RepeatedFieldBuilderV3<
          monitoring.Monitoring.AlarmID, monitoring.Monitoring.AlarmID.Builder, monitoring.Monitoring.AlarmIDOrBuilder> alarmListBuilder_;

      /**
       * <code>repeated .monitoring.AlarmID alarm_list = 1;</code>
       */
      public java.util.List<monitoring.Monitoring.AlarmID> getAlarmListList() {
        if (alarmListBuilder_ == null) {
          return java.util.Collections.unmodifiableList(alarmList_);
        } else {
          return alarmListBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .monitoring.AlarmID alarm_list = 1;</code>
       */
      public int getAlarmListCount() {
        if (alarmListBuilder_ == null) {
          return alarmList_.size();
        } else {
          return alarmListBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .monitoring.AlarmID alarm_list = 1;</code>
       */
      public monitoring.Monitoring.AlarmID getAlarmList(int index) {
        if (alarmListBuilder_ == null) {
          return alarmList_.get(index);
        } else {
          return alarmListBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .monitoring.AlarmID alarm_list = 1;</code>
       */
      public Builder setAlarmList(
          int index, monitoring.Monitoring.AlarmID value) {
        if (alarmListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAlarmListIsMutable();
          alarmList_.set(index, value);
          onChanged();
        } else {
          alarmListBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.AlarmID alarm_list = 1;</code>
       */
      public Builder setAlarmList(
          int index, monitoring.Monitoring.AlarmID.Builder builderForValue) {
        if (alarmListBuilder_ == null) {
          ensureAlarmListIsMutable();
          alarmList_.set(index, builderForValue.build());
          onChanged();
        } else {
          alarmListBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.AlarmID alarm_list = 1;</code>
       */
      public Builder addAlarmList(monitoring.Monitoring.AlarmID value) {
        if (alarmListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAlarmListIsMutable();
          alarmList_.add(value);
          onChanged();
        } else {
          alarmListBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.AlarmID alarm_list = 1;</code>
       */
      public Builder addAlarmList(
          int index, monitoring.Monitoring.AlarmID value) {
        if (alarmListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAlarmListIsMutable();
          alarmList_.add(index, value);
          onChanged();
        } else {
          alarmListBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.AlarmID alarm_list = 1;</code>
       */
      public Builder addAlarmList(
          monitoring.Monitoring.AlarmID.Builder builderForValue) {
        if (alarmListBuilder_ == null) {
          ensureAlarmListIsMutable();
          alarmList_.add(builderForValue.build());
          onChanged();
        } else {
          alarmListBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.AlarmID alarm_list = 1;</code>
       */
      public Builder addAlarmList(
          int index, monitoring.Monitoring.AlarmID.Builder builderForValue) {
        if (alarmListBuilder_ == null) {
          ensureAlarmListIsMutable();
          alarmList_.add(index, builderForValue.build());
          onChanged();
        } else {
          alarmListBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.AlarmID alarm_list = 1;</code>
       */
      public Builder addAllAlarmList(
          java.lang.Iterable<? extends monitoring.Monitoring.AlarmID> values) {
        if (alarmListBuilder_ == null) {
          ensureAlarmListIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, alarmList_);
          onChanged();
        } else {
          alarmListBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.AlarmID alarm_list = 1;</code>
       */
      public Builder clearAlarmList() {
        if (alarmListBuilder_ == null) {
          alarmList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          alarmListBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.AlarmID alarm_list = 1;</code>
       */
      public Builder removeAlarmList(int index) {
        if (alarmListBuilder_ == null) {
          ensureAlarmListIsMutable();
          alarmList_.remove(index);
          onChanged();
        } else {
          alarmListBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .monitoring.AlarmID alarm_list = 1;</code>
       */
      public monitoring.Monitoring.AlarmID.Builder getAlarmListBuilder(
          int index) {
        return getAlarmListFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .monitoring.AlarmID alarm_list = 1;</code>
       */
      public monitoring.Monitoring.AlarmIDOrBuilder getAlarmListOrBuilder(
          int index) {
        if (alarmListBuilder_ == null) {
          return alarmList_.get(index);  } else {
          return alarmListBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .monitoring.AlarmID alarm_list = 1;</code>
       */
      public java.util.List<? extends monitoring.Monitoring.AlarmIDOrBuilder> 
           getAlarmListOrBuilderList() {
        if (alarmListBuilder_ != null) {
          return alarmListBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(alarmList_);
        }
      }
      /**
       * <code>repeated .monitoring.AlarmID alarm_list = 1;</code>
       */
      public monitoring.Monitoring.AlarmID.Builder addAlarmListBuilder() {
        return getAlarmListFieldBuilder().addBuilder(
            monitoring.Monitoring.AlarmID.getDefaultInstance());
      }
      /**
       * <code>repeated .monitoring.AlarmID alarm_list = 1;</code>
       */
      public monitoring.Monitoring.AlarmID.Builder addAlarmListBuilder(
          int index) {
        return getAlarmListFieldBuilder().addBuilder(
            index, monitoring.Monitoring.AlarmID.getDefaultInstance());
      }
      /**
       * <code>repeated .monitoring.AlarmID alarm_list = 1;</code>
       */
      public java.util.List<monitoring.Monitoring.AlarmID.Builder> 
           getAlarmListBuilderList() {
        return getAlarmListFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          monitoring.Monitoring.AlarmID, monitoring.Monitoring.AlarmID.Builder, monitoring.Monitoring.AlarmIDOrBuilder> 
          getAlarmListFieldBuilder() {
        if (alarmListBuilder_ == null) {
          alarmListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              monitoring.Monitoring.AlarmID, monitoring.Monitoring.AlarmID.Builder, monitoring.Monitoring.AlarmIDOrBuilder>(
                  alarmList_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          alarmList_ = null;
        }
        return alarmListBuilder_;
      }
      @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.AlarmIDList)
    }

    // @@protoc_insertion_point(class_scope:monitoring.AlarmIDList)
    private static final monitoring.Monitoring.AlarmIDList DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new monitoring.Monitoring.AlarmIDList();
    }

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

    private static final com.google.protobuf.Parser<AlarmIDList>
        PARSER = new com.google.protobuf.AbstractParser<AlarmIDList>() {
      @java.lang.Override
      public AlarmIDList parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new AlarmIDList(input, extensionRegistry);
      }
    };

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

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

    @java.lang.Override
    public monitoring.Monitoring.AlarmIDList 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_BundleKpiDescriptor_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_monitoring_BundleKpiDescriptor_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_monitoring_EditedKpiDescriptor_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_monitoring_EditedKpiDescriptor_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_SubsIDList_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_monitoring_SubsIDList_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_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_AlarmIDList_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_monitoring_AlarmIDList_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\"\376\001\n\rKpiDes" +
      "criptor\022\027\n\017kpi_description\030\001 \001(\t\0228\n\017kpi_" +
      "sample_type\030\002 \001(\0162\037.kpi_sample_types.Kpi" +
      "SampleType\022$\n\tdevice_id\030\003 \001(\0132\021.context." +
      "DeviceId\022(\n\013endpoint_id\030\004 \001(\0132\023.context." +
      "EndPointId\022&\n\nservice_id\030\005 \001(\0132\022.context" +
      ".ServiceId\022\"\n\010slice_id\030\006 \001(\0132\020.context.S" +
      "liceId\"\254\002\n\023BundleKpiDescriptor\022\027\n\017kpi_de" +
      "scription\030\001 \001(\t\022&\n\013kpi_id_list\030\002 \003(\0132\021.m" +
      "onitoring.KpiId\0228\n\017kpi_sample_type\030\003 \001(\016" +
      "2\037.kpi_sample_types.KpiSampleType\022$\n\tdev" +
      "ice_id\030\004 \001(\0132\021.context.DeviceId\022(\n\013endpo" +
      "int_id\030\005 \001(\0132\023.context.EndPointId\022&\n\nser" +
      "vice_id\030\006 \001(\0132\022.context.ServiceId\022\"\n\010sli" +
      "ce_id\030\007 \001(\0132\020.context.SliceId\"\317\002\n\023Edited" +
      "KpiDescriptor\022!\n\006kpi_id\030\001 \001(\0132\021.monitori" +
      "ng.KpiId\022\027\n\017kpi_description\030\002 \001(\t\022&\n\013kpi" +
      "_id_list\030\003 \003(\0132\021.monitoring.KpiId\0228\n\017kpi" +
      "_sample_type\030\004 \001(\0162\037.kpi_sample_types.Kp" +
      "iSampleType\022$\n\tdevice_id\030\005 \001(\0132\021.context" +
      ".DeviceId\022(\n\013endpoint_id\030\006 \001(\0132\023.context" +
      ".EndPointId\022&\n\nservice_id\030\007 \001(\0132\022.contex" +
      "t.ServiceId\022\"\n\010slice_id\030\010 \001(\0132\020.context." +
      "SliceId\"l\n\021MonitorKpiRequest\022!\n\006kpi_id\030\001" +
      " \001(\0132\021.monitoring.KpiId\022\033\n\023monitoring_wi" +
      "ndow_s\030\002 \001(\002\022\027\n\017sampling_rate_s\030\003 \001(\002\"\241\001" +
      "\n\010KpiQuery\022!\n\006kpi_id\030\001 \003(\0132\021.monitoring." +
      "KpiId\022\033\n\023monitoring_window_s\030\002 \001(\002\022\027\n\017sa" +
      "mpling_rate_s\030\003 \001(\002\022\026\n\016last_n_samples\030\004 " +
      "\001(\r\022\022\n\nstart_date\030\005 \001(\t\022\020\n\010end_date\030\006 \001(" +
      "\t\"&\n\005KpiId\022\035\n\006kpi_id\030\001 \001(\0132\r.context.Uui" +
      "d\"d\n\003Kpi\022!\n\006kpi_id\030\001 \001(\0132\021.monitoring.Kp" +
      "iId\022\021\n\ttimestamp\030\002 \001(\t\022\'\n\tkpi_value\030\003 \001(" +
      "\0132\024.monitoring.KpiValue\"e\n\rKpiValueRange" +
      "\022)\n\013kpiMinValue\030\001 \001(\0132\024.monitoring.KpiVa" +
      "lue\022)\n\013kpiMaxValue\030\002 \001(\0132\024.monitoring.Kp" +
      "iValue\"a\n\010KpiValue\022\020\n\006intVal\030\001 \001(\rH\000\022\022\n\010" +
      "floatVal\030\002 \001(\002H\000\022\023\n\tstringVal\030\003 \001(\tH\000\022\021\n" +
      "\007boolVal\030\004 \001(\010H\000B\007\n\005value\",\n\007KpiList\022!\n\010" +
      "kpi_list\030\001 \003(\0132\017.monitoring.Kpi\"K\n\021KpiDe" +
      "scriptorList\0226\n\023kpi_descriptor_list\030\001 \003(" +
      "\0132\031.monitoring.KpiDescriptor\"\223\001\n\016SubsDes" +
      "criptor\022!\n\006kpi_id\030\001 \001(\0132\021.monitoring.Kpi" +
      "Id\022\033\n\023sampling_duration_s\030\002 \001(\002\022\033\n\023sampl" +
      "ing_interval_s\030\003 \001(\002\022\022\n\nstart_date\030\004 \001(\t" +
      "\022\020\n\010end_date\030\005 \001(\t\"0\n\016SubscriptionID\022\036\n\007" +
      "subs_id\030\001 \001(\0132\r.context.Uuid\"b\n\014SubsResp" +
      "onse\022+\n\007subs_id\030\001 \001(\0132\032.monitoring.Subsc" +
      "riptionID\022%\n\010kpi_list\030\002 \003(\0132\023.monitoring" +
      ".KpiList\";\n\nSubsIDList\022-\n\tsubs_list\030\001 \003(" +
      "\0132\032.monitoring.SubscriptionID\"\244\001\n\017AlarmD" +
      "escriptor\022\031\n\021alarm_description\030\001 \001(\t\022\014\n\004" +
      "name\030\002 \001(\t\022!\n\006kpi_id\030\003 \001(\0132\021.monitoring." +
      "KpiId\0222\n\017kpi_value_range\030\004 \001(\0132\031.monitor" +
      "ing.KpiValueRange\022\021\n\ttimestamp\030\005 \001(\t\"*\n\007" +
      "AlarmID\022\037\n\010alarm_id\030\001 \001(\0132\r.context.Uuid" +
      "\"m\n\rAlarmResponse\022%\n\010alarm_id\030\001 \001(\0132\023.mo" +
      "nitoring.AlarmID\022\014\n\004text\030\002 \001(\t\022\'\n\tkpi_va" +
      "lue\030\003 \001(\0132\024.monitoring.KpiValue\"6\n\013Alarm" +
      "IDList\022\'\n\nalarm_list\030\001 \003(\0132\023.monitoring." +
      "AlarmID2\271\t\n\021MonitoringService\022;\n\tCreateK" +
      "pi\022\031.monitoring.KpiDescriptor\032\021.monitori" +
      "ng.KpiId\"\000\022F\n\021EditKpiDescriptor\022\037.monito" +
      "ring.EditedKpiDescriptor\032\016.context.Empty" +
      "\"\000\0220\n\tDeleteKpi\022\021.monitoring.KpiId\032\016.con" +
      "text.Empty\"\000\022G\n\024GetKpiDescriptorList\022\016.c" +
      "ontext.Empty\032\035.monitoring.KpiDescriptorL" +
      "ist\"\000\022G\n\017CreateBundleKpi\022\037.monitoring.Bu" +
      "ndleKpiDescriptor\032\021.monitoring.KpiId\"\000\022B" +
      "\n\020GetKpiDescriptor\022\021.monitoring.KpiId\032\031." +
      "monitoring.KpiDescriptor\"\000\022/\n\nIncludeKpi" +
      "\022\017.monitoring.Kpi\032\016.context.Empty\"\000\022=\n\nM" +
      "onitorKpi\022\035.monitoring.MonitorKpiRequest" +
      "\032\016.context.Empty\"\000\022;\n\014QueryKpiData\022\024.mon" +
      "itoring.KpiQuery\032\023.monitoring.KpiList\"\000\022" +
      "C\n\014SubscribeKpi\022\032.monitoring.SubsDescrip" +
      "tor\032\023.monitoring.KpiList\"\0000\001\022M\n\021GetSubsD" +
      "escriptor\022\032.monitoring.SubscriptionID\032\032." +
      "monitoring.SubsDescriptor\"\000\022<\n\020GetSubscr" +
      "iptions\022\016.context.Empty\032\026.monitoring.Sub" +
      "sIDList\"\000\022C\n\023EditKpiSubscription\022\032.monit" +
      "oring.SubsDescriptor\032\016.context.Empty\"\000\022D" +
      "\n\016CreateKpiAlarm\022\033.monitoring.AlarmDescr" +
      "iptor\032\023.monitoring.AlarmID\"\000\022=\n\014EditKpiA" +
      "larm\022\033.monitoring.AlarmDescriptor\032\016.cont" +
      "ext.Empty\"\000\0226\n\tGetAlarms\022\016.context.Empty" +
      "\032\027.monitoring.AlarmIDList\"\000\022H\n\022GetAlarmD" +
      "escriptor\022\023.monitoring.AlarmID\032\033.monitor" +
      "ing.AlarmDescriptor\"\000\022L\n\026GetAlarmRespons" +
      "eStream\022\023.monitoring.AlarmID\032\031.monitorin" +
      "g.AlarmResponse\"\0000\001b\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          context.ContextOuterClass.getDescriptor(),
          kpi_sample_types.KpiSampleTypes.getDescriptor(),
        });
    internal_static_monitoring_KpiDescriptor_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_monitoring_KpiDescriptor_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_monitoring_KpiDescriptor_descriptor,
        new java.lang.String[] { "KpiDescription", "KpiSampleType", "DeviceId", "EndpointId", "ServiceId", "SliceId", });
    internal_static_monitoring_BundleKpiDescriptor_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_monitoring_BundleKpiDescriptor_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_monitoring_BundleKpiDescriptor_descriptor,
        new java.lang.String[] { "KpiDescription", "KpiIdList", "KpiSampleType", "DeviceId", "EndpointId", "ServiceId", "SliceId", });
    internal_static_monitoring_EditedKpiDescriptor_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_monitoring_EditedKpiDescriptor_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_monitoring_EditedKpiDescriptor_descriptor,
        new java.lang.String[] { "KpiId", "KpiDescription", "KpiIdList", "KpiSampleType", "DeviceId", "EndpointId", "ServiceId", "SliceId", });
    internal_static_monitoring_MonitorKpiRequest_descriptor =
      getDescriptor().getMessageTypes().get(3);
    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(4);
    internal_static_monitoring_KpiQuery_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_monitoring_KpiQuery_descriptor,
        new java.lang.String[] { "KpiId", "MonitoringWindowS", "SamplingRateS", "LastNSamples", "StartDate", "EndDate", });
    internal_static_monitoring_KpiId_descriptor =
      getDescriptor().getMessageTypes().get(5);
    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(6);
    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(7);
    internal_static_monitoring_KpiValueRange_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_monitoring_KpiValueRange_descriptor,
        new java.lang.String[] { "KpiMinValue", "KpiMaxValue", });
    internal_static_monitoring_KpiValue_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_monitoring_KpiValue_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_monitoring_KpiValue_descriptor,
        new java.lang.String[] { "IntVal", "FloatVal", "StringVal", "BoolVal", "Value", });
    internal_static_monitoring_KpiList_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_monitoring_KpiList_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_monitoring_KpiList_descriptor,
        new java.lang.String[] { "KpiList", });
    internal_static_monitoring_KpiDescriptorList_descriptor =
      getDescriptor().getMessageTypes().get(10);
    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(11);
    internal_static_monitoring_SubsDescriptor_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_monitoring_SubsDescriptor_descriptor,
        new java.lang.String[] { "KpiId", "SamplingDurationS", "SamplingIntervalS", "StartDate", "EndDate", });
    internal_static_monitoring_SubscriptionID_descriptor =
      getDescriptor().getMessageTypes().get(12);
    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(13);
    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_SubsIDList_descriptor =
      getDescriptor().getMessageTypes().get(14);
    internal_static_monitoring_SubsIDList_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_monitoring_SubsIDList_descriptor,
        new java.lang.String[] { "SubsList", });
    internal_static_monitoring_AlarmDescriptor_descriptor =
      getDescriptor().getMessageTypes().get(15);
    internal_static_monitoring_AlarmDescriptor_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_monitoring_AlarmDescriptor_descriptor,
        new java.lang.String[] { "AlarmDescription", "Name", "KpiId", "KpiValueRange", "Timestamp", });
    internal_static_monitoring_AlarmID_descriptor =
      getDescriptor().getMessageTypes().get(16);
    internal_static_monitoring_AlarmID_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_monitoring_AlarmID_descriptor,
        new java.lang.String[] { "AlarmId", });
    internal_static_monitoring_AlarmResponse_descriptor =
      getDescriptor().getMessageTypes().get(17);
    internal_static_monitoring_AlarmResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_monitoring_AlarmResponse_descriptor,
        new java.lang.String[] { "AlarmId", "Text", "KpiValue", });
    internal_static_monitoring_AlarmIDList_descriptor =
      getDescriptor().getMessageTypes().get(18);
    internal_static_monitoring_AlarmIDList_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_monitoring_AlarmIDList_descriptor,
        new java.lang.String[] { "AlarmList", });
    context.ContextOuterClass.getDescriptor();
    kpi_sample_types.KpiSampleTypes.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
