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

    /**
     * <pre>
     *  context.SliceId    slice_id    = 6;
     * </pre>
     *
     * <code>.context.ServiceId service_id = 5;</code>
     * @return Whether the serviceId field is set.
     */
    boolean hasServiceId();
    /**
     * <pre>
     *  context.SliceId    slice_id    = 6;
     * </pre>
     *
     * <code>.context.ServiceId service_id = 5;</code>
     * @return The serviceId.
     */
    context.ContextOuterClass.ServiceId getServiceId();
    /**
     * <pre>
     *  context.SliceId    slice_id    = 6;
     * </pre>
     *
     * <code>.context.ServiceId service_id = 5;</code>
     */
    context.ContextOuterClass.ServiceIdOrBuilder getServiceIdOrBuilder();
  }
  /**
   * 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;
            }
            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_;
    /**
     * <pre>
     *  context.SliceId    slice_id    = 6;
     * </pre>
     *
     * <code>.context.ServiceId service_id = 5;</code>
     * @return Whether the serviceId field is set.
     */
    @java.lang.Override
    public boolean hasServiceId() {
      return serviceId_ != null;
    }
    /**
     * <pre>
     *  context.SliceId    slice_id    = 6;
     * </pre>
     *
     * <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_;
    }
    /**
     * <pre>
     *  context.SliceId    slice_id    = 6;
     * </pre>
     *
     * <code>.context.ServiceId service_id = 5;</code>
     */
    @java.lang.Override
    public context.ContextOuterClass.ServiceIdOrBuilder getServiceIdOrBuilder() {
      return getServiceId();
    }

    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());
      }
      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());
      }
      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 (!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();
      }
      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;
        }
        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();
        }
        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());
        }
        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_;
      /**
       * <pre>
       *  context.SliceId    slice_id    = 6;
       * </pre>
       *
       * <code>.context.ServiceId service_id = 5;</code>
       * @return Whether the serviceId field is set.
       */
      public boolean hasServiceId() {
        return serviceIdBuilder_ != null || serviceId_ != null;
      }
      /**
       * <pre>
       *  context.SliceId    slice_id    = 6;
       * </pre>
       *
       * <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();
        }
      }
      /**
       * <pre>
       *  context.SliceId    slice_id    = 6;
       * </pre>
       *
       * <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;
      }
      /**
       * <pre>
       *  context.SliceId    slice_id    = 6;
       * </pre>
       *
       * <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;
      }
      /**
       * <pre>
       *  context.SliceId    slice_id    = 6;
       * </pre>
       *
       * <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;
      }
      /**
       * <pre>
       *  context.SliceId    slice_id    = 6;
       * </pre>
       *
       * <code>.context.ServiceId service_id = 5;</code>
       */
      public Builder clearServiceId() {
        if (serviceIdBuilder_ == null) {
          serviceId_ = null;
          onChanged();
        } else {
          serviceId_ = null;
          serviceIdBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       *  context.SliceId    slice_id    = 6;
       * </pre>
       *
       * <code>.context.ServiceId service_id = 5;</code>
       */
      public context.ContextOuterClass.ServiceId.Builder getServiceIdBuilder() {
        
        onChanged();
        return getServiceIdFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       *  context.SliceId    slice_id    = 6;
       * </pre>
       *
       * <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_;
        }
      }
      /**
       * <pre>
       *  context.SliceId    slice_id    = 6;
       * </pre>
       *
       * <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_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:monitoring.KpiDescriptor)
    }

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

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

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

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

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

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

  }

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

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

    /**
     * <code>float sampling_duration_s = 2;</code>
     * @return The samplingDurationS.
     */
    float getSamplingDurationS();

    /**
     * <code>float sampling_interval_s = 3;</code>
     * @return The samplingIntervalS.
     */
    float getSamplingIntervalS();
  }
  /**
   * 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: {

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

              samplingIntervalS_ = 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 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_;
    }

    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_);
      }
      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_);
      }
      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(getSamplingDurationS())
          != java.lang.Float.floatToIntBits(
              other.getSamplingDurationS())) return false;
      if (java.lang.Float.floatToIntBits(getSamplingIntervalS())
          != java.lang.Float.floatToIntBits(
              other.getSamplingIntervalS())) 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 = (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;
        }
        samplingDurationS_ = 0F;

        samplingIntervalS_ = 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.samplingDurationS_ = samplingDurationS_;
        result.samplingIntervalS_ = samplingIntervalS_;
        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.getSamplingDurationS() != 0F) {
          setSamplingDurationS(other.getSamplingDurationS());
        }
        if (other.getSamplingIntervalS() != 0F) {
          setSamplingIntervalS(other.getSamplingIntervalS());
        }
        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 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;
      }
      @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 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 = 4;</code>
     * @return Whether the kpiValue field is set.
     */
    boolean hasKpiValue();
    /**
     * <code>.monitoring.KpiValue kpi_value = 4;</code>
     * @return The kpiValue.
     */
    monitoring.Monitoring.KpiValue getKpiValue();
    /**
     * <code>.monitoring.KpiValue kpi_value = 4;</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 34: {
              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 = 4;
    private monitoring.Monitoring.KpiValue kpiValue_;
    /**
     * <code>.monitoring.KpiValue kpi_value = 4;</code>
     * @return Whether the kpiValue field is set.
     */
    @java.lang.Override
    public boolean hasKpiValue() {
      return kpiValue_ != null;
    }
    /**
     * <code>.monitoring.KpiValue kpi_value = 4;</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 = 4;</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(4, 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(4, 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 = 4;</code>
       * @return Whether the kpiValue field is set.
       */
      public boolean hasKpiValue() {
        return kpiValueBuilder_ != null || kpiValue_ != null;
      }
      /**
       * <code>.monitoring.KpiValue kpi_value = 4;</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 = 4;</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 = 4;</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 = 4;</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 = 4;</code>
       */
      public Builder clearKpiValue() {
        if (kpiValueBuilder_ == null) {
          kpiValue_ = null;
          onChanged();
        } else {
          kpiValue_ = null;
          kpiValueBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.monitoring.KpiValue kpi_value = 4;</code>
       */
      public monitoring.Monitoring.KpiValue.Builder getKpiValueBuilder() {
        
        onChanged();
        return getKpiValueFieldBuilder().getBuilder();
      }
      /**
       * <code>.monitoring.KpiValue kpi_value = 4;</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 = 4;</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 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;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_monitoring_KpiDescriptor_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_monitoring_KpiDescriptor_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_monitoring_MonitorKpiRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_monitoring_MonitorKpiRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_monitoring_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_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;

  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\"\332\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\"p\n\021MonitorKpiRequest\022!\n\006kpi_i" +
      "d\030\001 \001(\0132\021.monitoring.KpiId\022\033\n\023sampling_d" +
      "uration_s\030\002 \001(\002\022\033\n\023sampling_interval_s\030\003" +
      " \001(\002\"&\n\005KpiId\022\035\n\006kpi_id\030\001 \001(\0132\r.context." +
      "Uuid\"d\n\003Kpi\022!\n\006kpi_id\030\001 \001(\0132\021.monitoring" +
      ".KpiId\022\021\n\ttimestamp\030\002 \001(\t\022\'\n\tkpi_value\030\004" +
      " \001(\0132\024.monitoring.KpiValue\"a\n\010KpiValue\022\020" +
      "\n\006intVal\030\001 \001(\rH\000\022\022\n\010floatVal\030\002 \001(\002H\000\022\023\n\t" +
      "stringVal\030\003 \001(\tH\000\022\021\n\007boolVal\030\004 \001(\010H\000B\007\n\005" +
      "value\",\n\007KpiList\022!\n\010kpi_list\030\001 \003(\0132\017.mon" +
      "itoring.Kpi2\363\002\n\021MonitoringService\022;\n\tCre" +
      "ateKpi\022\031.monitoring.KpiDescriptor\032\021.moni" +
      "toring.KpiId\"\000\022B\n\020GetKpiDescriptor\022\021.mon" +
      "itoring.KpiId\032\031.monitoring.KpiDescriptor" +
      "\"\000\022/\n\nIncludeKpi\022\017.monitoring.Kpi\032\016.cont" +
      "ext.Empty\"\000\022=\n\nMonitorKpi\022\035.monitoring.M" +
      "onitorKpiRequest\032\016.context.Empty\"\000\0226\n\014Ge" +
      "tStreamKpi\022\021.monitoring.KpiId\032\017.monitori" +
      "ng.Kpi\"\0000\001\0225\n\rGetInstantKpi\022\021.monitoring" +
      ".KpiId\032\017.monitoring.Kpi\"\000b\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          context.ContextOuterClass.getDescriptor(),
          kpi_sample_types.KpiSampleTypes.getDescriptor(),
        });
    internal_static_monitoring_KpiDescriptor_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_monitoring_KpiDescriptor_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_monitoring_KpiDescriptor_descriptor,
        new java.lang.String[] { "KpiDescription", "KpiSampleType", "DeviceId", "EndpointId", "ServiceId", });
    internal_static_monitoring_MonitorKpiRequest_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_monitoring_MonitorKpiRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_monitoring_MonitorKpiRequest_descriptor,
        new java.lang.String[] { "KpiId", "SamplingDurationS", "SamplingIntervalS", });
    internal_static_monitoring_KpiId_descriptor =
      getDescriptor().getMessageTypes().get(2);
    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(3);
    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_KpiValue_descriptor =
      getDescriptor().getMessageTypes().get(4);
    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(5);
    internal_static_monitoring_KpiList_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_monitoring_KpiList_descriptor,
        new java.lang.String[] { "KpiList", });
    context.ContextOuterClass.getDescriptor();
    kpi_sample_types.KpiSampleTypes.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
