All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.arpnetworking.metrics.aggregation.protocol.Messages Maven / Gradle / Ivy

There is a newer version: 1.3.0
Show newest version
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: messages.proto

package com.arpnetworking.metrics.aggregation.protocol;

public final class Messages {
  private Messages() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
  }
  public interface StatisticRecordOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.arpnetworking.metrics.aggregation.protocol.StatisticRecord)
      com.google.protobuf.MessageOrBuilder {

    /**
     * required string statistic = 1;
     */
    boolean hasStatistic();
    /**
     * required string statistic = 1;
     */
    java.lang.String getStatistic();
    /**
     * required string statistic = 1;
     */
    com.google.protobuf.ByteString
        getStatisticBytes();

    /**
     * required double value = 2;
     */
    boolean hasValue();
    /**
     * required double value = 2;
     */
    double getValue();

    /**
     * required string unit = 3;
     */
    boolean hasUnit();
    /**
     * required string unit = 3;
     */
    java.lang.String getUnit();
    /**
     * required string unit = 3;
     */
    com.google.protobuf.ByteString
        getUnitBytes();

    /**
     * required bool user_specified = 4;
     */
    boolean hasUserSpecified();
    /**
     * required bool user_specified = 4;
     */
    boolean getUserSpecified();

    /**
     * optional bytes supporting_data = 5;
     */
    boolean hasSupportingData();
    /**
     * optional bytes supporting_data = 5;
     */
    com.google.protobuf.ByteString getSupportingData();
  }
  /**
   * Protobuf type {@code com.arpnetworking.metrics.aggregation.protocol.StatisticRecord}
   */
  public  static final class StatisticRecord extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:com.arpnetworking.metrics.aggregation.protocol.StatisticRecord)
      StatisticRecordOrBuilder {
    // Use StatisticRecord.newBuilder() to construct.
    private StatisticRecord(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
    }
    private StatisticRecord() {
      statistic_ = "";
      value_ = 0D;
      unit_ = "";
      userSpecified_ = false;
      supportingData_ = com.google.protobuf.ByteString.EMPTY;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private StatisticRecord(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
      this();
      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;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              statistic_ = bs;
              break;
            }
            case 17: {
              bitField0_ |= 0x00000002;
              value_ = input.readDouble();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              unit_ = bs;
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              userSpecified_ = input.readBool();
              break;
            }
            case 42: {
              bitField0_ |= 0x00000010;
              supportingData_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw new RuntimeException(e.setUnfinishedMessage(this));
      } catch (java.io.IOException e) {
        throw new RuntimeException(
            new com.google.protobuf.InvalidProtocolBufferException(
                e.getMessage()).setUnfinishedMessage(this));
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.arpnetworking.metrics.aggregation.protocol.Messages.internal_static_com_arpnetworking_metrics_aggregation_protocol_StatisticRecord_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.arpnetworking.metrics.aggregation.protocol.Messages.internal_static_com_arpnetworking_metrics_aggregation_protocol_StatisticRecord_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord.class, com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord.Builder.class);
    }

    private int bitField0_;
    public static final int STATISTIC_FIELD_NUMBER = 1;
    private volatile java.lang.Object statistic_;
    /**
     * required string statistic = 1;
     */
    public boolean hasStatistic() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required string statistic = 1;
     */
    public java.lang.String getStatistic() {
      java.lang.Object ref = statistic_;
      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 (bs.isValidUtf8()) {
          statistic_ = s;
        }
        return s;
      }
    }
    /**
     * required string statistic = 1;
     */
    public com.google.protobuf.ByteString
        getStatisticBytes() {
      java.lang.Object ref = statistic_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        statistic_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VALUE_FIELD_NUMBER = 2;
    private double value_;
    /**
     * required double value = 2;
     */
    public boolean hasValue() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required double value = 2;
     */
    public double getValue() {
      return value_;
    }

    public static final int UNIT_FIELD_NUMBER = 3;
    private volatile java.lang.Object unit_;
    /**
     * required string unit = 3;
     */
    public boolean hasUnit() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * required string unit = 3;
     */
    public java.lang.String getUnit() {
      java.lang.Object ref = unit_;
      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 (bs.isValidUtf8()) {
          unit_ = s;
        }
        return s;
      }
    }
    /**
     * required string unit = 3;
     */
    public com.google.protobuf.ByteString
        getUnitBytes() {
      java.lang.Object ref = unit_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        unit_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int USER_SPECIFIED_FIELD_NUMBER = 4;
    private boolean userSpecified_;
    /**
     * required bool user_specified = 4;
     */
    public boolean hasUserSpecified() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * required bool user_specified = 4;
     */
    public boolean getUserSpecified() {
      return userSpecified_;
    }

    public static final int SUPPORTING_DATA_FIELD_NUMBER = 5;
    private com.google.protobuf.ByteString supportingData_;
    /**
     * optional bytes supporting_data = 5;
     */
    public boolean hasSupportingData() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional bytes supporting_data = 5;
     */
    public com.google.protobuf.ByteString getSupportingData() {
      return supportingData_;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasStatistic()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasValue()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasUnit()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasUserSpecified()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 1, statistic_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeDouble(2, value_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 3, unit_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBool(4, userSpecified_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeBytes(5, supportingData_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(1, statistic_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(2, value_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(3, unit_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, userSpecified_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(5, supportingData_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.arpnetworking.metrics.aggregation.protocol.StatisticRecord}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:com.arpnetworking.metrics.aggregation.protocol.StatisticRecord)
        com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecordOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.arpnetworking.metrics.aggregation.protocol.Messages.internal_static_com_arpnetworking_metrics_aggregation_protocol_StatisticRecord_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.arpnetworking.metrics.aggregation.protocol.Messages.internal_static_com_arpnetworking_metrics_aggregation_protocol_StatisticRecord_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord.class, com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord.Builder.class);
      }

      // Construct using com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        statistic_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        value_ = 0D;
        bitField0_ = (bitField0_ & ~0x00000002);
        unit_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        userSpecified_ = false;
        bitField0_ = (bitField0_ & ~0x00000008);
        supportingData_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.arpnetworking.metrics.aggregation.protocol.Messages.internal_static_com_arpnetworking_metrics_aggregation_protocol_StatisticRecord_descriptor;
      }

      public com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord getDefaultInstanceForType() {
        return com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord.getDefaultInstance();
      }

      public com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord build() {
        com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord buildPartial() {
        com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord result = new com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.statistic_ = statistic_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.value_ = value_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.unit_ = unit_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.userSpecified_ = userSpecified_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.supportingData_ = supportingData_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord) {
          return mergeFrom((com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord other) {
        if (other == com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord.getDefaultInstance()) return this;
        if (other.hasStatistic()) {
          bitField0_ |= 0x00000001;
          statistic_ = other.statistic_;
          onChanged();
        }
        if (other.hasValue()) {
          setValue(other.getValue());
        }
        if (other.hasUnit()) {
          bitField0_ |= 0x00000004;
          unit_ = other.unit_;
          onChanged();
        }
        if (other.hasUserSpecified()) {
          setUserSpecified(other.getUserSpecified());
        }
        if (other.hasSupportingData()) {
          setSupportingData(other.getSupportingData());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        if (!hasStatistic()) {
          return false;
        }
        if (!hasValue()) {
          return false;
        }
        if (!hasUnit()) {
          return false;
        }
        if (!hasUserSpecified()) {
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object statistic_ = "";
      /**
       * required string statistic = 1;
       */
      public boolean hasStatistic() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required string statistic = 1;
       */
      public java.lang.String getStatistic() {
        java.lang.Object ref = statistic_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            statistic_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * required string statistic = 1;
       */
      public com.google.protobuf.ByteString
          getStatisticBytes() {
        java.lang.Object ref = statistic_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          statistic_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * required string statistic = 1;
       */
      public Builder setStatistic(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        statistic_ = value;
        onChanged();
        return this;
      }
      /**
       * required string statistic = 1;
       */
      public Builder clearStatistic() {
        bitField0_ = (bitField0_ & ~0x00000001);
        statistic_ = getDefaultInstance().getStatistic();
        onChanged();
        return this;
      }
      /**
       * required string statistic = 1;
       */
      public Builder setStatisticBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        statistic_ = value;
        onChanged();
        return this;
      }

      private double value_ ;
      /**
       * required double value = 2;
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required double value = 2;
       */
      public double getValue() {
        return value_;
      }
      /**
       * required double value = 2;
       */
      public Builder setValue(double value) {
        bitField0_ |= 0x00000002;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * required double value = 2;
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000002);
        value_ = 0D;
        onChanged();
        return this;
      }

      private java.lang.Object unit_ = "";
      /**
       * required string unit = 3;
       */
      public boolean hasUnit() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * required string unit = 3;
       */
      public java.lang.String getUnit() {
        java.lang.Object ref = unit_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            unit_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * required string unit = 3;
       */
      public com.google.protobuf.ByteString
          getUnitBytes() {
        java.lang.Object ref = unit_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          unit_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * required string unit = 3;
       */
      public Builder setUnit(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        unit_ = value;
        onChanged();
        return this;
      }
      /**
       * required string unit = 3;
       */
      public Builder clearUnit() {
        bitField0_ = (bitField0_ & ~0x00000004);
        unit_ = getDefaultInstance().getUnit();
        onChanged();
        return this;
      }
      /**
       * required string unit = 3;
       */
      public Builder setUnitBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        unit_ = value;
        onChanged();
        return this;
      }

      private boolean userSpecified_ ;
      /**
       * required bool user_specified = 4;
       */
      public boolean hasUserSpecified() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * required bool user_specified = 4;
       */
      public boolean getUserSpecified() {
        return userSpecified_;
      }
      /**
       * required bool user_specified = 4;
       */
      public Builder setUserSpecified(boolean value) {
        bitField0_ |= 0x00000008;
        userSpecified_ = value;
        onChanged();
        return this;
      }
      /**
       * required bool user_specified = 4;
       */
      public Builder clearUserSpecified() {
        bitField0_ = (bitField0_ & ~0x00000008);
        userSpecified_ = false;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString supportingData_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * optional bytes supporting_data = 5;
       */
      public boolean hasSupportingData() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional bytes supporting_data = 5;
       */
      public com.google.protobuf.ByteString getSupportingData() {
        return supportingData_;
      }
      /**
       * optional bytes supporting_data = 5;
       */
      public Builder setSupportingData(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        supportingData_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bytes supporting_data = 5;
       */
      public Builder clearSupportingData() {
        bitField0_ = (bitField0_ & ~0x00000010);
        supportingData_ = getDefaultInstance().getSupportingData();
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:com.arpnetworking.metrics.aggregation.protocol.StatisticRecord)
    }

    // @@protoc_insertion_point(class_scope:com.arpnetworking.metrics.aggregation.protocol.StatisticRecord)
    private static final com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord();
    }

    public static com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      public StatisticRecord parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        try {
          return new StatisticRecord(input, extensionRegistry);
        } catch (RuntimeException e) {
          if (e.getCause() instanceof
              com.google.protobuf.InvalidProtocolBufferException) {
            throw (com.google.protobuf.InvalidProtocolBufferException)
                e.getCause();
          }
          throw e;
        }
      }
    };

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

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

    public com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SamplesSupportingDataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.arpnetworking.metrics.aggregation.protocol.SamplesSupportingData)
      com.google.protobuf.MessageOrBuilder {

    /**
     * required string unit = 1;
     */
    boolean hasUnit();
    /**
     * required string unit = 1;
     */
    java.lang.String getUnit();
    /**
     * required string unit = 1;
     */
    com.google.protobuf.ByteString
        getUnitBytes();

    /**
     * repeated double samples = 2 [packed = true];
     */
    java.util.List getSamplesList();
    /**
     * repeated double samples = 2 [packed = true];
     */
    int getSamplesCount();
    /**
     * repeated double samples = 2 [packed = true];
     */
    double getSamples(int index);
  }
  /**
   * Protobuf type {@code com.arpnetworking.metrics.aggregation.protocol.SamplesSupportingData}
   */
  public  static final class SamplesSupportingData extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:com.arpnetworking.metrics.aggregation.protocol.SamplesSupportingData)
      SamplesSupportingDataOrBuilder {
    // Use SamplesSupportingData.newBuilder() to construct.
    private SamplesSupportingData(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
    }
    private SamplesSupportingData() {
      unit_ = "";
      samples_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private SamplesSupportingData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
      this();
      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;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              unit_ = bs;
              break;
            }
            case 17: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                samples_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              samples_.add(input.readDouble());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002) && input.getBytesUntilLimit() > 0) {
                samples_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              while (input.getBytesUntilLimit() > 0) {
                samples_.add(input.readDouble());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw new RuntimeException(e.setUnfinishedMessage(this));
      } catch (java.io.IOException e) {
        throw new RuntimeException(
            new com.google.protobuf.InvalidProtocolBufferException(
                e.getMessage()).setUnfinishedMessage(this));
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          samples_ = java.util.Collections.unmodifiableList(samples_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.arpnetworking.metrics.aggregation.protocol.Messages.internal_static_com_arpnetworking_metrics_aggregation_protocol_SamplesSupportingData_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.arpnetworking.metrics.aggregation.protocol.Messages.internal_static_com_arpnetworking_metrics_aggregation_protocol_SamplesSupportingData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.arpnetworking.metrics.aggregation.protocol.Messages.SamplesSupportingData.class, com.arpnetworking.metrics.aggregation.protocol.Messages.SamplesSupportingData.Builder.class);
    }

    private int bitField0_;
    public static final int UNIT_FIELD_NUMBER = 1;
    private volatile java.lang.Object unit_;
    /**
     * required string unit = 1;
     */
    public boolean hasUnit() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required string unit = 1;
     */
    public java.lang.String getUnit() {
      java.lang.Object ref = unit_;
      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 (bs.isValidUtf8()) {
          unit_ = s;
        }
        return s;
      }
    }
    /**
     * required string unit = 1;
     */
    public com.google.protobuf.ByteString
        getUnitBytes() {
      java.lang.Object ref = unit_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        unit_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SAMPLES_FIELD_NUMBER = 2;
    private java.util.List samples_;
    /**
     * repeated double samples = 2 [packed = true];
     */
    public java.util.List
        getSamplesList() {
      return samples_;
    }
    /**
     * repeated double samples = 2 [packed = true];
     */
    public int getSamplesCount() {
      return samples_.size();
    }
    /**
     * repeated double samples = 2 [packed = true];
     */
    public double getSamples(int index) {
      return samples_.get(index);
    }
    private int samplesMemoizedSerializedSize = -1;

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasUnit()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 1, unit_);
      }
      if (getSamplesList().size() > 0) {
        output.writeRawVarint32(18);
        output.writeRawVarint32(samplesMemoizedSerializedSize);
      }
      for (int i = 0; i < samples_.size(); i++) {
        output.writeDoubleNoTag(samples_.get(i));
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(1, unit_);
      }
      {
        int dataSize = 0;
        dataSize = 8 * getSamplesList().size();
        size += dataSize;
        if (!getSamplesList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        samplesMemoizedSerializedSize = dataSize;
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.SamplesSupportingData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.SamplesSupportingData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.SamplesSupportingData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.SamplesSupportingData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.SamplesSupportingData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.SamplesSupportingData parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.SamplesSupportingData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.SamplesSupportingData parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.SamplesSupportingData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.SamplesSupportingData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.arpnetworking.metrics.aggregation.protocol.Messages.SamplesSupportingData prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.arpnetworking.metrics.aggregation.protocol.SamplesSupportingData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:com.arpnetworking.metrics.aggregation.protocol.SamplesSupportingData)
        com.arpnetworking.metrics.aggregation.protocol.Messages.SamplesSupportingDataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.arpnetworking.metrics.aggregation.protocol.Messages.internal_static_com_arpnetworking_metrics_aggregation_protocol_SamplesSupportingData_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.arpnetworking.metrics.aggregation.protocol.Messages.internal_static_com_arpnetworking_metrics_aggregation_protocol_SamplesSupportingData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.arpnetworking.metrics.aggregation.protocol.Messages.SamplesSupportingData.class, com.arpnetworking.metrics.aggregation.protocol.Messages.SamplesSupportingData.Builder.class);
      }

      // Construct using com.arpnetworking.metrics.aggregation.protocol.Messages.SamplesSupportingData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        unit_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        samples_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.arpnetworking.metrics.aggregation.protocol.Messages.internal_static_com_arpnetworking_metrics_aggregation_protocol_SamplesSupportingData_descriptor;
      }

      public com.arpnetworking.metrics.aggregation.protocol.Messages.SamplesSupportingData getDefaultInstanceForType() {
        return com.arpnetworking.metrics.aggregation.protocol.Messages.SamplesSupportingData.getDefaultInstance();
      }

      public com.arpnetworking.metrics.aggregation.protocol.Messages.SamplesSupportingData build() {
        com.arpnetworking.metrics.aggregation.protocol.Messages.SamplesSupportingData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.arpnetworking.metrics.aggregation.protocol.Messages.SamplesSupportingData buildPartial() {
        com.arpnetworking.metrics.aggregation.protocol.Messages.SamplesSupportingData result = new com.arpnetworking.metrics.aggregation.protocol.Messages.SamplesSupportingData(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.unit_ = unit_;
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          samples_ = java.util.Collections.unmodifiableList(samples_);
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.samples_ = samples_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.arpnetworking.metrics.aggregation.protocol.Messages.SamplesSupportingData) {
          return mergeFrom((com.arpnetworking.metrics.aggregation.protocol.Messages.SamplesSupportingData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.arpnetworking.metrics.aggregation.protocol.Messages.SamplesSupportingData other) {
        if (other == com.arpnetworking.metrics.aggregation.protocol.Messages.SamplesSupportingData.getDefaultInstance()) return this;
        if (other.hasUnit()) {
          bitField0_ |= 0x00000001;
          unit_ = other.unit_;
          onChanged();
        }
        if (!other.samples_.isEmpty()) {
          if (samples_.isEmpty()) {
            samples_ = other.samples_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureSamplesIsMutable();
            samples_.addAll(other.samples_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        if (!hasUnit()) {
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.arpnetworking.metrics.aggregation.protocol.Messages.SamplesSupportingData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.arpnetworking.metrics.aggregation.protocol.Messages.SamplesSupportingData) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object unit_ = "";
      /**
       * required string unit = 1;
       */
      public boolean hasUnit() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required string unit = 1;
       */
      public java.lang.String getUnit() {
        java.lang.Object ref = unit_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            unit_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * required string unit = 1;
       */
      public com.google.protobuf.ByteString
          getUnitBytes() {
        java.lang.Object ref = unit_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          unit_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * required string unit = 1;
       */
      public Builder setUnit(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        unit_ = value;
        onChanged();
        return this;
      }
      /**
       * required string unit = 1;
       */
      public Builder clearUnit() {
        bitField0_ = (bitField0_ & ~0x00000001);
        unit_ = getDefaultInstance().getUnit();
        onChanged();
        return this;
      }
      /**
       * required string unit = 1;
       */
      public Builder setUnitBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        unit_ = value;
        onChanged();
        return this;
      }

      private java.util.List samples_ = java.util.Collections.emptyList();
      private void ensureSamplesIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          samples_ = new java.util.ArrayList(samples_);
          bitField0_ |= 0x00000002;
         }
      }
      /**
       * repeated double samples = 2 [packed = true];
       */
      public java.util.List
          getSamplesList() {
        return java.util.Collections.unmodifiableList(samples_);
      }
      /**
       * repeated double samples = 2 [packed = true];
       */
      public int getSamplesCount() {
        return samples_.size();
      }
      /**
       * repeated double samples = 2 [packed = true];
       */
      public double getSamples(int index) {
        return samples_.get(index);
      }
      /**
       * repeated double samples = 2 [packed = true];
       */
      public Builder setSamples(
          int index, double value) {
        ensureSamplesIsMutable();
        samples_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated double samples = 2 [packed = true];
       */
      public Builder addSamples(double value) {
        ensureSamplesIsMutable();
        samples_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated double samples = 2 [packed = true];
       */
      public Builder addAllSamples(
          java.lang.Iterable values) {
        ensureSamplesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, samples_);
        onChanged();
        return this;
      }
      /**
       * repeated double samples = 2 [packed = true];
       */
      public Builder clearSamples() {
        samples_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:com.arpnetworking.metrics.aggregation.protocol.SamplesSupportingData)
    }

    // @@protoc_insertion_point(class_scope:com.arpnetworking.metrics.aggregation.protocol.SamplesSupportingData)
    private static final com.arpnetworking.metrics.aggregation.protocol.Messages.SamplesSupportingData DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.arpnetworking.metrics.aggregation.protocol.Messages.SamplesSupportingData();
    }

    public static com.arpnetworking.metrics.aggregation.protocol.Messages.SamplesSupportingData getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      public SamplesSupportingData parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        try {
          return new SamplesSupportingData(input, extensionRegistry);
        } catch (RuntimeException e) {
          if (e.getCause() instanceof
              com.google.protobuf.InvalidProtocolBufferException) {
            throw (com.google.protobuf.InvalidProtocolBufferException)
                e.getCause();
          }
          throw e;
        }
      }
    };

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

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

    public com.arpnetworking.metrics.aggregation.protocol.Messages.SamplesSupportingData getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SparseHistogramEntryOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.arpnetworking.metrics.aggregation.protocol.SparseHistogramEntry)
      com.google.protobuf.MessageOrBuilder {

    /**
     * required double bucket = 1;
     */
    boolean hasBucket();
    /**
     * required double bucket = 1;
     */
    double getBucket();

    /**
     * required int32 count = 2;
     */
    boolean hasCount();
    /**
     * required int32 count = 2;
     */
    int getCount();
  }
  /**
   * Protobuf type {@code com.arpnetworking.metrics.aggregation.protocol.SparseHistogramEntry}
   */
  public  static final class SparseHistogramEntry extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:com.arpnetworking.metrics.aggregation.protocol.SparseHistogramEntry)
      SparseHistogramEntryOrBuilder {
    // Use SparseHistogramEntry.newBuilder() to construct.
    private SparseHistogramEntry(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
    }
    private SparseHistogramEntry() {
      bucket_ = 0D;
      count_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private SparseHistogramEntry(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
      this();
      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;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 9: {
              bitField0_ |= 0x00000001;
              bucket_ = input.readDouble();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              count_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw new RuntimeException(e.setUnfinishedMessage(this));
      } catch (java.io.IOException e) {
        throw new RuntimeException(
            new com.google.protobuf.InvalidProtocolBufferException(
                e.getMessage()).setUnfinishedMessage(this));
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.arpnetworking.metrics.aggregation.protocol.Messages.internal_static_com_arpnetworking_metrics_aggregation_protocol_SparseHistogramEntry_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.arpnetworking.metrics.aggregation.protocol.Messages.internal_static_com_arpnetworking_metrics_aggregation_protocol_SparseHistogramEntry_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry.class, com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry.Builder.class);
    }

    private int bitField0_;
    public static final int BUCKET_FIELD_NUMBER = 1;
    private double bucket_;
    /**
     * required double bucket = 1;
     */
    public boolean hasBucket() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required double bucket = 1;
     */
    public double getBucket() {
      return bucket_;
    }

    public static final int COUNT_FIELD_NUMBER = 2;
    private int count_;
    /**
     * required int32 count = 2;
     */
    public boolean hasCount() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required int32 count = 2;
     */
    public int getCount() {
      return count_;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasBucket()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasCount()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeDouble(1, bucket_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, count_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(1, bucket_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, count_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.arpnetworking.metrics.aggregation.protocol.SparseHistogramEntry}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:com.arpnetworking.metrics.aggregation.protocol.SparseHistogramEntry)
        com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntryOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.arpnetworking.metrics.aggregation.protocol.Messages.internal_static_com_arpnetworking_metrics_aggregation_protocol_SparseHistogramEntry_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.arpnetworking.metrics.aggregation.protocol.Messages.internal_static_com_arpnetworking_metrics_aggregation_protocol_SparseHistogramEntry_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry.class, com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry.Builder.class);
      }

      // Construct using com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        bucket_ = 0D;
        bitField0_ = (bitField0_ & ~0x00000001);
        count_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.arpnetworking.metrics.aggregation.protocol.Messages.internal_static_com_arpnetworking_metrics_aggregation_protocol_SparseHistogramEntry_descriptor;
      }

      public com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry getDefaultInstanceForType() {
        return com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry.getDefaultInstance();
      }

      public com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry build() {
        com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry buildPartial() {
        com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry result = new com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.bucket_ = bucket_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.count_ = count_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry) {
          return mergeFrom((com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry other) {
        if (other == com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry.getDefaultInstance()) return this;
        if (other.hasBucket()) {
          setBucket(other.getBucket());
        }
        if (other.hasCount()) {
          setCount(other.getCount());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        if (!hasBucket()) {
          return false;
        }
        if (!hasCount()) {
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private double bucket_ ;
      /**
       * required double bucket = 1;
       */
      public boolean hasBucket() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required double bucket = 1;
       */
      public double getBucket() {
        return bucket_;
      }
      /**
       * required double bucket = 1;
       */
      public Builder setBucket(double value) {
        bitField0_ |= 0x00000001;
        bucket_ = value;
        onChanged();
        return this;
      }
      /**
       * required double bucket = 1;
       */
      public Builder clearBucket() {
        bitField0_ = (bitField0_ & ~0x00000001);
        bucket_ = 0D;
        onChanged();
        return this;
      }

      private int count_ ;
      /**
       * required int32 count = 2;
       */
      public boolean hasCount() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required int32 count = 2;
       */
      public int getCount() {
        return count_;
      }
      /**
       * required int32 count = 2;
       */
      public Builder setCount(int value) {
        bitField0_ |= 0x00000002;
        count_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 count = 2;
       */
      public Builder clearCount() {
        bitField0_ = (bitField0_ & ~0x00000002);
        count_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:com.arpnetworking.metrics.aggregation.protocol.SparseHistogramEntry)
    }

    // @@protoc_insertion_point(class_scope:com.arpnetworking.metrics.aggregation.protocol.SparseHistogramEntry)
    private static final com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry();
    }

    public static com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      public SparseHistogramEntry parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        try {
          return new SparseHistogramEntry(input, extensionRegistry);
        } catch (RuntimeException e) {
          if (e.getCause() instanceof
              com.google.protobuf.InvalidProtocolBufferException) {
            throw (com.google.protobuf.InvalidProtocolBufferException)
                e.getCause();
          }
          throw e;
        }
      }
    };

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

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

    public com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SparseHistogramSupportingDataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.arpnetworking.metrics.aggregation.protocol.SparseHistogramSupportingData)
      com.google.protobuf.MessageOrBuilder {

    /**
     * required string unit = 1;
     */
    boolean hasUnit();
    /**
     * required string unit = 1;
     */
    java.lang.String getUnit();
    /**
     * required string unit = 1;
     */
    com.google.protobuf.ByteString
        getUnitBytes();

    /**
     * repeated .com.arpnetworking.metrics.aggregation.protocol.SparseHistogramEntry entries = 2;
     */
    java.util.List 
        getEntriesList();
    /**
     * repeated .com.arpnetworking.metrics.aggregation.protocol.SparseHistogramEntry entries = 2;
     */
    com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry getEntries(int index);
    /**
     * repeated .com.arpnetworking.metrics.aggregation.protocol.SparseHistogramEntry entries = 2;
     */
    int getEntriesCount();
    /**
     * repeated .com.arpnetworking.metrics.aggregation.protocol.SparseHistogramEntry entries = 2;
     */
    java.util.List 
        getEntriesOrBuilderList();
    /**
     * repeated .com.arpnetworking.metrics.aggregation.protocol.SparseHistogramEntry entries = 2;
     */
    com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntryOrBuilder getEntriesOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code com.arpnetworking.metrics.aggregation.protocol.SparseHistogramSupportingData}
   */
  public  static final class SparseHistogramSupportingData extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:com.arpnetworking.metrics.aggregation.protocol.SparseHistogramSupportingData)
      SparseHistogramSupportingDataOrBuilder {
    // Use SparseHistogramSupportingData.newBuilder() to construct.
    private SparseHistogramSupportingData(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
    }
    private SparseHistogramSupportingData() {
      unit_ = "";
      entries_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private SparseHistogramSupportingData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
      this();
      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;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              unit_ = bs;
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                entries_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              entries_.add(input.readMessage(com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry.parser(), extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw new RuntimeException(e.setUnfinishedMessage(this));
      } catch (java.io.IOException e) {
        throw new RuntimeException(
            new com.google.protobuf.InvalidProtocolBufferException(
                e.getMessage()).setUnfinishedMessage(this));
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          entries_ = java.util.Collections.unmodifiableList(entries_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.arpnetworking.metrics.aggregation.protocol.Messages.internal_static_com_arpnetworking_metrics_aggregation_protocol_SparseHistogramSupportingData_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.arpnetworking.metrics.aggregation.protocol.Messages.internal_static_com_arpnetworking_metrics_aggregation_protocol_SparseHistogramSupportingData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramSupportingData.class, com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramSupportingData.Builder.class);
    }

    private int bitField0_;
    public static final int UNIT_FIELD_NUMBER = 1;
    private volatile java.lang.Object unit_;
    /**
     * required string unit = 1;
     */
    public boolean hasUnit() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required string unit = 1;
     */
    public java.lang.String getUnit() {
      java.lang.Object ref = unit_;
      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 (bs.isValidUtf8()) {
          unit_ = s;
        }
        return s;
      }
    }
    /**
     * required string unit = 1;
     */
    public com.google.protobuf.ByteString
        getUnitBytes() {
      java.lang.Object ref = unit_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        unit_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ENTRIES_FIELD_NUMBER = 2;
    private java.util.List entries_;
    /**
     * repeated .com.arpnetworking.metrics.aggregation.protocol.SparseHistogramEntry entries = 2;
     */
    public java.util.List getEntriesList() {
      return entries_;
    }
    /**
     * repeated .com.arpnetworking.metrics.aggregation.protocol.SparseHistogramEntry entries = 2;
     */
    public java.util.List 
        getEntriesOrBuilderList() {
      return entries_;
    }
    /**
     * repeated .com.arpnetworking.metrics.aggregation.protocol.SparseHistogramEntry entries = 2;
     */
    public int getEntriesCount() {
      return entries_.size();
    }
    /**
     * repeated .com.arpnetworking.metrics.aggregation.protocol.SparseHistogramEntry entries = 2;
     */
    public com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry getEntries(int index) {
      return entries_.get(index);
    }
    /**
     * repeated .com.arpnetworking.metrics.aggregation.protocol.SparseHistogramEntry entries = 2;
     */
    public com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntryOrBuilder getEntriesOrBuilder(
        int index) {
      return entries_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasUnit()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getEntriesCount(); i++) {
        if (!getEntries(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 1, unit_);
      }
      for (int i = 0; i < entries_.size(); i++) {
        output.writeMessage(2, entries_.get(i));
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(1, unit_);
      }
      for (int i = 0; i < entries_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, entries_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramSupportingData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramSupportingData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramSupportingData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramSupportingData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramSupportingData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramSupportingData parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramSupportingData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramSupportingData parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramSupportingData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramSupportingData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramSupportingData prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.arpnetworking.metrics.aggregation.protocol.SparseHistogramSupportingData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:com.arpnetworking.metrics.aggregation.protocol.SparseHistogramSupportingData)
        com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramSupportingDataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.arpnetworking.metrics.aggregation.protocol.Messages.internal_static_com_arpnetworking_metrics_aggregation_protocol_SparseHistogramSupportingData_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.arpnetworking.metrics.aggregation.protocol.Messages.internal_static_com_arpnetworking_metrics_aggregation_protocol_SparseHistogramSupportingData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramSupportingData.class, com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramSupportingData.Builder.class);
      }

      // Construct using com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramSupportingData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getEntriesFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        unit_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        if (entriesBuilder_ == null) {
          entries_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          entriesBuilder_.clear();
        }
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.arpnetworking.metrics.aggregation.protocol.Messages.internal_static_com_arpnetworking_metrics_aggregation_protocol_SparseHistogramSupportingData_descriptor;
      }

      public com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramSupportingData getDefaultInstanceForType() {
        return com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramSupportingData.getDefaultInstance();
      }

      public com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramSupportingData build() {
        com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramSupportingData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramSupportingData buildPartial() {
        com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramSupportingData result = new com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramSupportingData(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.unit_ = unit_;
        if (entriesBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            entries_ = java.util.Collections.unmodifiableList(entries_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.entries_ = entries_;
        } else {
          result.entries_ = entriesBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramSupportingData) {
          return mergeFrom((com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramSupportingData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramSupportingData other) {
        if (other == com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramSupportingData.getDefaultInstance()) return this;
        if (other.hasUnit()) {
          bitField0_ |= 0x00000001;
          unit_ = other.unit_;
          onChanged();
        }
        if (entriesBuilder_ == null) {
          if (!other.entries_.isEmpty()) {
            if (entries_.isEmpty()) {
              entries_ = other.entries_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureEntriesIsMutable();
              entries_.addAll(other.entries_);
            }
            onChanged();
          }
        } else {
          if (!other.entries_.isEmpty()) {
            if (entriesBuilder_.isEmpty()) {
              entriesBuilder_.dispose();
              entriesBuilder_ = null;
              entries_ = other.entries_;
              bitField0_ = (bitField0_ & ~0x00000002);
              entriesBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getEntriesFieldBuilder() : null;
            } else {
              entriesBuilder_.addAllMessages(other.entries_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        if (!hasUnit()) {
          return false;
        }
        for (int i = 0; i < getEntriesCount(); i++) {
          if (!getEntries(i).isInitialized()) {
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramSupportingData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramSupportingData) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object unit_ = "";
      /**
       * required string unit = 1;
       */
      public boolean hasUnit() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required string unit = 1;
       */
      public java.lang.String getUnit() {
        java.lang.Object ref = unit_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            unit_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * required string unit = 1;
       */
      public com.google.protobuf.ByteString
          getUnitBytes() {
        java.lang.Object ref = unit_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          unit_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * required string unit = 1;
       */
      public Builder setUnit(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        unit_ = value;
        onChanged();
        return this;
      }
      /**
       * required string unit = 1;
       */
      public Builder clearUnit() {
        bitField0_ = (bitField0_ & ~0x00000001);
        unit_ = getDefaultInstance().getUnit();
        onChanged();
        return this;
      }
      /**
       * required string unit = 1;
       */
      public Builder setUnitBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        unit_ = value;
        onChanged();
        return this;
      }

      private java.util.List entries_ =
        java.util.Collections.emptyList();
      private void ensureEntriesIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          entries_ = new java.util.ArrayList(entries_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry, com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry.Builder, com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntryOrBuilder> entriesBuilder_;

      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.SparseHistogramEntry entries = 2;
       */
      public java.util.List getEntriesList() {
        if (entriesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(entries_);
        } else {
          return entriesBuilder_.getMessageList();
        }
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.SparseHistogramEntry entries = 2;
       */
      public int getEntriesCount() {
        if (entriesBuilder_ == null) {
          return entries_.size();
        } else {
          return entriesBuilder_.getCount();
        }
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.SparseHistogramEntry entries = 2;
       */
      public com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry getEntries(int index) {
        if (entriesBuilder_ == null) {
          return entries_.get(index);
        } else {
          return entriesBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.SparseHistogramEntry entries = 2;
       */
      public Builder setEntries(
          int index, com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry value) {
        if (entriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEntriesIsMutable();
          entries_.set(index, value);
          onChanged();
        } else {
          entriesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.SparseHistogramEntry entries = 2;
       */
      public Builder setEntries(
          int index, com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry.Builder builderForValue) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.set(index, builderForValue.build());
          onChanged();
        } else {
          entriesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.SparseHistogramEntry entries = 2;
       */
      public Builder addEntries(com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry value) {
        if (entriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEntriesIsMutable();
          entries_.add(value);
          onChanged();
        } else {
          entriesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.SparseHistogramEntry entries = 2;
       */
      public Builder addEntries(
          int index, com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry value) {
        if (entriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEntriesIsMutable();
          entries_.add(index, value);
          onChanged();
        } else {
          entriesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.SparseHistogramEntry entries = 2;
       */
      public Builder addEntries(
          com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry.Builder builderForValue) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.add(builderForValue.build());
          onChanged();
        } else {
          entriesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.SparseHistogramEntry entries = 2;
       */
      public Builder addEntries(
          int index, com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry.Builder builderForValue) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.add(index, builderForValue.build());
          onChanged();
        } else {
          entriesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.SparseHistogramEntry entries = 2;
       */
      public Builder addAllEntries(
          java.lang.Iterable values) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, entries_);
          onChanged();
        } else {
          entriesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.SparseHistogramEntry entries = 2;
       */
      public Builder clearEntries() {
        if (entriesBuilder_ == null) {
          entries_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          entriesBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.SparseHistogramEntry entries = 2;
       */
      public Builder removeEntries(int index) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.remove(index);
          onChanged();
        } else {
          entriesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.SparseHistogramEntry entries = 2;
       */
      public com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry.Builder getEntriesBuilder(
          int index) {
        return getEntriesFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.SparseHistogramEntry entries = 2;
       */
      public com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntryOrBuilder getEntriesOrBuilder(
          int index) {
        if (entriesBuilder_ == null) {
          return entries_.get(index);  } else {
          return entriesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.SparseHistogramEntry entries = 2;
       */
      public java.util.List 
           getEntriesOrBuilderList() {
        if (entriesBuilder_ != null) {
          return entriesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(entries_);
        }
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.SparseHistogramEntry entries = 2;
       */
      public com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry.Builder addEntriesBuilder() {
        return getEntriesFieldBuilder().addBuilder(
            com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry.getDefaultInstance());
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.SparseHistogramEntry entries = 2;
       */
      public com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry.Builder addEntriesBuilder(
          int index) {
        return getEntriesFieldBuilder().addBuilder(
            index, com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry.getDefaultInstance());
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.SparseHistogramEntry entries = 2;
       */
      public java.util.List 
           getEntriesBuilderList() {
        return getEntriesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry, com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry.Builder, com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntryOrBuilder> 
          getEntriesFieldBuilder() {
        if (entriesBuilder_ == null) {
          entriesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry, com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntry.Builder, com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramEntryOrBuilder>(
                  entries_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          entries_ = null;
        }
        return entriesBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:com.arpnetworking.metrics.aggregation.protocol.SparseHistogramSupportingData)
    }

    // @@protoc_insertion_point(class_scope:com.arpnetworking.metrics.aggregation.protocol.SparseHistogramSupportingData)
    private static final com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramSupportingData DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramSupportingData();
    }

    public static com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramSupportingData getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      public SparseHistogramSupportingData parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        try {
          return new SparseHistogramSupportingData(input, extensionRegistry);
        } catch (RuntimeException e) {
          if (e.getCause() instanceof
              com.google.protobuf.InvalidProtocolBufferException) {
            throw (com.google.protobuf.InvalidProtocolBufferException)
                e.getCause();
          }
          throw e;
        }
      }
    };

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

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

    public com.arpnetworking.metrics.aggregation.protocol.Messages.SparseHistogramSupportingData getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface HostIdentificationOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.arpnetworking.metrics.aggregation.protocol.HostIdentification)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional string host_name = 1;
     */
    boolean hasHostName();
    /**
     * optional string host_name = 1;
     */
    java.lang.String getHostName();
    /**
     * optional string host_name = 1;
     */
    com.google.protobuf.ByteString
        getHostNameBytes();

    /**
     * optional string cluster_name = 2;
     */
    boolean hasClusterName();
    /**
     * optional string cluster_name = 2;
     */
    java.lang.String getClusterName();
    /**
     * optional string cluster_name = 2;
     */
    com.google.protobuf.ByteString
        getClusterNameBytes();

    /**
     * optional string version = 3;
     */
    boolean hasVersion();
    /**
     * optional string version = 3;
     */
    java.lang.String getVersion();
    /**
     * optional string version = 3;
     */
    com.google.protobuf.ByteString
        getVersionBytes();
  }
  /**
   * Protobuf type {@code com.arpnetworking.metrics.aggregation.protocol.HostIdentification}
   */
  public  static final class HostIdentification extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:com.arpnetworking.metrics.aggregation.protocol.HostIdentification)
      HostIdentificationOrBuilder {
    // Use HostIdentification.newBuilder() to construct.
    private HostIdentification(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
    }
    private HostIdentification() {
      hostName_ = "";
      clusterName_ = "";
      version_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HostIdentification(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
      this();
      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;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              hostName_ = bs;
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              clusterName_ = bs;
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              version_ = bs;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw new RuntimeException(e.setUnfinishedMessage(this));
      } catch (java.io.IOException e) {
        throw new RuntimeException(
            new com.google.protobuf.InvalidProtocolBufferException(
                e.getMessage()).setUnfinishedMessage(this));
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.arpnetworking.metrics.aggregation.protocol.Messages.internal_static_com_arpnetworking_metrics_aggregation_protocol_HostIdentification_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.arpnetworking.metrics.aggregation.protocol.Messages.internal_static_com_arpnetworking_metrics_aggregation_protocol_HostIdentification_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.arpnetworking.metrics.aggregation.protocol.Messages.HostIdentification.class, com.arpnetworking.metrics.aggregation.protocol.Messages.HostIdentification.Builder.class);
    }

    private int bitField0_;
    public static final int HOST_NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object hostName_;
    /**
     * optional string host_name = 1;
     */
    public boolean hasHostName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional string host_name = 1;
     */
    public java.lang.String getHostName() {
      java.lang.Object ref = hostName_;
      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 (bs.isValidUtf8()) {
          hostName_ = s;
        }
        return s;
      }
    }
    /**
     * optional string host_name = 1;
     */
    public com.google.protobuf.ByteString
        getHostNameBytes() {
      java.lang.Object ref = hostName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        hostName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CLUSTER_NAME_FIELD_NUMBER = 2;
    private volatile java.lang.Object clusterName_;
    /**
     * optional string cluster_name = 2;
     */
    public boolean hasClusterName() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional string cluster_name = 2;
     */
    public java.lang.String getClusterName() {
      java.lang.Object ref = clusterName_;
      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 (bs.isValidUtf8()) {
          clusterName_ = s;
        }
        return s;
      }
    }
    /**
     * optional string cluster_name = 2;
     */
    public com.google.protobuf.ByteString
        getClusterNameBytes() {
      java.lang.Object ref = clusterName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clusterName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VERSION_FIELD_NUMBER = 3;
    private volatile java.lang.Object version_;
    /**
     * optional string version = 3;
     */
    public boolean hasVersion() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional string version = 3;
     */
    public java.lang.String getVersion() {
      java.lang.Object ref = version_;
      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 (bs.isValidUtf8()) {
          version_ = s;
        }
        return s;
      }
    }
    /**
     * optional string version = 3;
     */
    public com.google.protobuf.ByteString
        getVersionBytes() {
      java.lang.Object ref = version_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        version_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 1, hostName_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, clusterName_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 3, version_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(1, hostName_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, clusterName_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(3, version_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.HostIdentification parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.HostIdentification parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.HostIdentification parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.HostIdentification parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.HostIdentification parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.HostIdentification parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.HostIdentification parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.HostIdentification parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.HostIdentification parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.HostIdentification parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.arpnetworking.metrics.aggregation.protocol.Messages.HostIdentification prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.arpnetworking.metrics.aggregation.protocol.HostIdentification}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:com.arpnetworking.metrics.aggregation.protocol.HostIdentification)
        com.arpnetworking.metrics.aggregation.protocol.Messages.HostIdentificationOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.arpnetworking.metrics.aggregation.protocol.Messages.internal_static_com_arpnetworking_metrics_aggregation_protocol_HostIdentification_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.arpnetworking.metrics.aggregation.protocol.Messages.internal_static_com_arpnetworking_metrics_aggregation_protocol_HostIdentification_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.arpnetworking.metrics.aggregation.protocol.Messages.HostIdentification.class, com.arpnetworking.metrics.aggregation.protocol.Messages.HostIdentification.Builder.class);
      }

      // Construct using com.arpnetworking.metrics.aggregation.protocol.Messages.HostIdentification.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        hostName_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        clusterName_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        version_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.arpnetworking.metrics.aggregation.protocol.Messages.internal_static_com_arpnetworking_metrics_aggregation_protocol_HostIdentification_descriptor;
      }

      public com.arpnetworking.metrics.aggregation.protocol.Messages.HostIdentification getDefaultInstanceForType() {
        return com.arpnetworking.metrics.aggregation.protocol.Messages.HostIdentification.getDefaultInstance();
      }

      public com.arpnetworking.metrics.aggregation.protocol.Messages.HostIdentification build() {
        com.arpnetworking.metrics.aggregation.protocol.Messages.HostIdentification result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.arpnetworking.metrics.aggregation.protocol.Messages.HostIdentification buildPartial() {
        com.arpnetworking.metrics.aggregation.protocol.Messages.HostIdentification result = new com.arpnetworking.metrics.aggregation.protocol.Messages.HostIdentification(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.hostName_ = hostName_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.clusterName_ = clusterName_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.version_ = version_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.arpnetworking.metrics.aggregation.protocol.Messages.HostIdentification) {
          return mergeFrom((com.arpnetworking.metrics.aggregation.protocol.Messages.HostIdentification)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.arpnetworking.metrics.aggregation.protocol.Messages.HostIdentification other) {
        if (other == com.arpnetworking.metrics.aggregation.protocol.Messages.HostIdentification.getDefaultInstance()) return this;
        if (other.hasHostName()) {
          bitField0_ |= 0x00000001;
          hostName_ = other.hostName_;
          onChanged();
        }
        if (other.hasClusterName()) {
          bitField0_ |= 0x00000002;
          clusterName_ = other.clusterName_;
          onChanged();
        }
        if (other.hasVersion()) {
          bitField0_ |= 0x00000004;
          version_ = other.version_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.arpnetworking.metrics.aggregation.protocol.Messages.HostIdentification parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.arpnetworking.metrics.aggregation.protocol.Messages.HostIdentification) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object hostName_ = "";
      /**
       * optional string host_name = 1;
       */
      public boolean hasHostName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional string host_name = 1;
       */
      public java.lang.String getHostName() {
        java.lang.Object ref = hostName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            hostName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string host_name = 1;
       */
      public com.google.protobuf.ByteString
          getHostNameBytes() {
        java.lang.Object ref = hostName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          hostName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string host_name = 1;
       */
      public Builder setHostName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        hostName_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string host_name = 1;
       */
      public Builder clearHostName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        hostName_ = getDefaultInstance().getHostName();
        onChanged();
        return this;
      }
      /**
       * optional string host_name = 1;
       */
      public Builder setHostNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        hostName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object clusterName_ = "";
      /**
       * optional string cluster_name = 2;
       */
      public boolean hasClusterName() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional string cluster_name = 2;
       */
      public java.lang.String getClusterName() {
        java.lang.Object ref = clusterName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            clusterName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string cluster_name = 2;
       */
      public com.google.protobuf.ByteString
          getClusterNameBytes() {
        java.lang.Object ref = clusterName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clusterName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string cluster_name = 2;
       */
      public Builder setClusterName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        clusterName_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string cluster_name = 2;
       */
      public Builder clearClusterName() {
        bitField0_ = (bitField0_ & ~0x00000002);
        clusterName_ = getDefaultInstance().getClusterName();
        onChanged();
        return this;
      }
      /**
       * optional string cluster_name = 2;
       */
      public Builder setClusterNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        clusterName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object version_ = "";
      /**
       * optional string version = 3;
       */
      public boolean hasVersion() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional string version = 3;
       */
      public java.lang.String getVersion() {
        java.lang.Object ref = version_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            version_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string version = 3;
       */
      public com.google.protobuf.ByteString
          getVersionBytes() {
        java.lang.Object ref = version_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          version_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string version = 3;
       */
      public Builder setVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        version_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string version = 3;
       */
      public Builder clearVersion() {
        bitField0_ = (bitField0_ & ~0x00000004);
        version_ = getDefaultInstance().getVersion();
        onChanged();
        return this;
      }
      /**
       * optional string version = 3;
       */
      public Builder setVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        version_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:com.arpnetworking.metrics.aggregation.protocol.HostIdentification)
    }

    // @@protoc_insertion_point(class_scope:com.arpnetworking.metrics.aggregation.protocol.HostIdentification)
    private static final com.arpnetworking.metrics.aggregation.protocol.Messages.HostIdentification DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.arpnetworking.metrics.aggregation.protocol.Messages.HostIdentification();
    }

    public static com.arpnetworking.metrics.aggregation.protocol.Messages.HostIdentification getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      public HostIdentification parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        try {
          return new HostIdentification(input, extensionRegistry);
        } catch (RuntimeException e) {
          if (e.getCause() instanceof
              com.google.protobuf.InvalidProtocolBufferException) {
            throw (com.google.protobuf.InvalidProtocolBufferException)
                e.getCause();
          }
          throw e;
        }
      }
    };

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

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

    public com.arpnetworking.metrics.aggregation.protocol.Messages.HostIdentification getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface StatisticSetRecordOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.arpnetworking.metrics.aggregation.protocol.StatisticSetRecord)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional string service = 1;
     */
    boolean hasService();
    /**
     * optional string service = 1;
     */
    java.lang.String getService();
    /**
     * optional string service = 1;
     */
    com.google.protobuf.ByteString
        getServiceBytes();

    /**
     * optional string cluster = 2;
     */
    boolean hasCluster();
    /**
     * optional string cluster = 2;
     */
    java.lang.String getCluster();
    /**
     * optional string cluster = 2;
     */
    com.google.protobuf.ByteString
        getClusterBytes();

    /**
     * required string metric = 3;
     */
    boolean hasMetric();
    /**
     * required string metric = 3;
     */
    java.lang.String getMetric();
    /**
     * required string metric = 3;
     */
    com.google.protobuf.ByteString
        getMetricBytes();

    /**
     * required string period = 4;
     */
    boolean hasPeriod();
    /**
     * required string period = 4;
     */
    java.lang.String getPeriod();
    /**
     * required string period = 4;
     */
    com.google.protobuf.ByteString
        getPeriodBytes();

    /**
     * required string period_start = 5;
     */
    boolean hasPeriodStart();
    /**
     * required string period_start = 5;
     */
    java.lang.String getPeriodStart();
    /**
     * required string period_start = 5;
     */
    com.google.protobuf.ByteString
        getPeriodStartBytes();

    /**
     * repeated .com.arpnetworking.metrics.aggregation.protocol.StatisticRecord statistics = 6;
     */
    java.util.List 
        getStatisticsList();
    /**
     * repeated .com.arpnetworking.metrics.aggregation.protocol.StatisticRecord statistics = 6;
     */
    com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord getStatistics(int index);
    /**
     * repeated .com.arpnetworking.metrics.aggregation.protocol.StatisticRecord statistics = 6;
     */
    int getStatisticsCount();
    /**
     * repeated .com.arpnetworking.metrics.aggregation.protocol.StatisticRecord statistics = 6;
     */
    java.util.List 
        getStatisticsOrBuilderList();
    /**
     * repeated .com.arpnetworking.metrics.aggregation.protocol.StatisticRecord statistics = 6;
     */
    com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecordOrBuilder getStatisticsOrBuilder(
        int index);

    /**
     * repeated .com.arpnetworking.metrics.aggregation.protocol.DimensionEntry dimensions = 8;
     */
    java.util.List 
        getDimensionsList();
    /**
     * repeated .com.arpnetworking.metrics.aggregation.protocol.DimensionEntry dimensions = 8;
     */
    com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry getDimensions(int index);
    /**
     * repeated .com.arpnetworking.metrics.aggregation.protocol.DimensionEntry dimensions = 8;
     */
    int getDimensionsCount();
    /**
     * repeated .com.arpnetworking.metrics.aggregation.protocol.DimensionEntry dimensions = 8;
     */
    java.util.List 
        getDimensionsOrBuilderList();
    /**
     * repeated .com.arpnetworking.metrics.aggregation.protocol.DimensionEntry dimensions = 8;
     */
    com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntryOrBuilder getDimensionsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code com.arpnetworking.metrics.aggregation.protocol.StatisticSetRecord}
   */
  public  static final class StatisticSetRecord extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:com.arpnetworking.metrics.aggregation.protocol.StatisticSetRecord)
      StatisticSetRecordOrBuilder {
    // Use StatisticSetRecord.newBuilder() to construct.
    private StatisticSetRecord(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
    }
    private StatisticSetRecord() {
      service_ = "";
      cluster_ = "";
      metric_ = "";
      period_ = "";
      periodStart_ = "";
      statistics_ = java.util.Collections.emptyList();
      dimensions_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private StatisticSetRecord(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
      this();
      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;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              service_ = bs;
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              cluster_ = bs;
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              metric_ = bs;
              break;
            }
            case 34: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000008;
              period_ = bs;
              break;
            }
            case 42: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000010;
              periodStart_ = bs;
              break;
            }
            case 50: {
              if (!((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
                statistics_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000020;
              }
              statistics_.add(input.readMessage(com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord.parser(), extensionRegistry));
              break;
            }
            case 66: {
              if (!((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
                dimensions_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000040;
              }
              dimensions_.add(input.readMessage(com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry.parser(), extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw new RuntimeException(e.setUnfinishedMessage(this));
      } catch (java.io.IOException e) {
        throw new RuntimeException(
            new com.google.protobuf.InvalidProtocolBufferException(
                e.getMessage()).setUnfinishedMessage(this));
      } finally {
        if (((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
          statistics_ = java.util.Collections.unmodifiableList(statistics_);
        }
        if (((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
          dimensions_ = java.util.Collections.unmodifiableList(dimensions_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.arpnetworking.metrics.aggregation.protocol.Messages.internal_static_com_arpnetworking_metrics_aggregation_protocol_StatisticSetRecord_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.arpnetworking.metrics.aggregation.protocol.Messages.internal_static_com_arpnetworking_metrics_aggregation_protocol_StatisticSetRecord_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticSetRecord.class, com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticSetRecord.Builder.class);
    }

    private int bitField0_;
    public static final int SERVICE_FIELD_NUMBER = 1;
    private volatile java.lang.Object service_;
    /**
     * optional string service = 1;
     */
    public boolean hasService() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional string service = 1;
     */
    public java.lang.String getService() {
      java.lang.Object ref = service_;
      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 (bs.isValidUtf8()) {
          service_ = s;
        }
        return s;
      }
    }
    /**
     * optional string service = 1;
     */
    public com.google.protobuf.ByteString
        getServiceBytes() {
      java.lang.Object ref = service_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        service_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CLUSTER_FIELD_NUMBER = 2;
    private volatile java.lang.Object cluster_;
    /**
     * optional string cluster = 2;
     */
    public boolean hasCluster() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional string cluster = 2;
     */
    public java.lang.String getCluster() {
      java.lang.Object ref = cluster_;
      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 (bs.isValidUtf8()) {
          cluster_ = s;
        }
        return s;
      }
    }
    /**
     * optional string cluster = 2;
     */
    public com.google.protobuf.ByteString
        getClusterBytes() {
      java.lang.Object ref = cluster_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        cluster_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int METRIC_FIELD_NUMBER = 3;
    private volatile java.lang.Object metric_;
    /**
     * required string metric = 3;
     */
    public boolean hasMetric() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * required string metric = 3;
     */
    public java.lang.String getMetric() {
      java.lang.Object ref = metric_;
      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 (bs.isValidUtf8()) {
          metric_ = s;
        }
        return s;
      }
    }
    /**
     * required string metric = 3;
     */
    public com.google.protobuf.ByteString
        getMetricBytes() {
      java.lang.Object ref = metric_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        metric_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PERIOD_FIELD_NUMBER = 4;
    private volatile java.lang.Object period_;
    /**
     * required string period = 4;
     */
    public boolean hasPeriod() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * required string period = 4;
     */
    public java.lang.String getPeriod() {
      java.lang.Object ref = period_;
      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 (bs.isValidUtf8()) {
          period_ = s;
        }
        return s;
      }
    }
    /**
     * required string period = 4;
     */
    public com.google.protobuf.ByteString
        getPeriodBytes() {
      java.lang.Object ref = period_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        period_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PERIOD_START_FIELD_NUMBER = 5;
    private volatile java.lang.Object periodStart_;
    /**
     * required string period_start = 5;
     */
    public boolean hasPeriodStart() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * required string period_start = 5;
     */
    public java.lang.String getPeriodStart() {
      java.lang.Object ref = periodStart_;
      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 (bs.isValidUtf8()) {
          periodStart_ = s;
        }
        return s;
      }
    }
    /**
     * required string period_start = 5;
     */
    public com.google.protobuf.ByteString
        getPeriodStartBytes() {
      java.lang.Object ref = periodStart_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        periodStart_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int STATISTICS_FIELD_NUMBER = 6;
    private java.util.List statistics_;
    /**
     * repeated .com.arpnetworking.metrics.aggregation.protocol.StatisticRecord statistics = 6;
     */
    public java.util.List getStatisticsList() {
      return statistics_;
    }
    /**
     * repeated .com.arpnetworking.metrics.aggregation.protocol.StatisticRecord statistics = 6;
     */
    public java.util.List 
        getStatisticsOrBuilderList() {
      return statistics_;
    }
    /**
     * repeated .com.arpnetworking.metrics.aggregation.protocol.StatisticRecord statistics = 6;
     */
    public int getStatisticsCount() {
      return statistics_.size();
    }
    /**
     * repeated .com.arpnetworking.metrics.aggregation.protocol.StatisticRecord statistics = 6;
     */
    public com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord getStatistics(int index) {
      return statistics_.get(index);
    }
    /**
     * repeated .com.arpnetworking.metrics.aggregation.protocol.StatisticRecord statistics = 6;
     */
    public com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecordOrBuilder getStatisticsOrBuilder(
        int index) {
      return statistics_.get(index);
    }

    public static final int DIMENSIONS_FIELD_NUMBER = 8;
    private java.util.List dimensions_;
    /**
     * repeated .com.arpnetworking.metrics.aggregation.protocol.DimensionEntry dimensions = 8;
     */
    public java.util.List getDimensionsList() {
      return dimensions_;
    }
    /**
     * repeated .com.arpnetworking.metrics.aggregation.protocol.DimensionEntry dimensions = 8;
     */
    public java.util.List 
        getDimensionsOrBuilderList() {
      return dimensions_;
    }
    /**
     * repeated .com.arpnetworking.metrics.aggregation.protocol.DimensionEntry dimensions = 8;
     */
    public int getDimensionsCount() {
      return dimensions_.size();
    }
    /**
     * repeated .com.arpnetworking.metrics.aggregation.protocol.DimensionEntry dimensions = 8;
     */
    public com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry getDimensions(int index) {
      return dimensions_.get(index);
    }
    /**
     * repeated .com.arpnetworking.metrics.aggregation.protocol.DimensionEntry dimensions = 8;
     */
    public com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntryOrBuilder getDimensionsOrBuilder(
        int index) {
      return dimensions_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasMetric()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPeriod()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPeriodStart()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getStatisticsCount(); i++) {
        if (!getStatistics(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getDimensionsCount(); i++) {
        if (!getDimensions(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 1, service_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, cluster_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 3, metric_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 4, period_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 5, periodStart_);
      }
      for (int i = 0; i < statistics_.size(); i++) {
        output.writeMessage(6, statistics_.get(i));
      }
      for (int i = 0; i < dimensions_.size(); i++) {
        output.writeMessage(8, dimensions_.get(i));
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(1, service_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, cluster_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(3, metric_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(4, period_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(5, periodStart_);
      }
      for (int i = 0; i < statistics_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, statistics_.get(i));
      }
      for (int i = 0; i < dimensions_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, dimensions_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticSetRecord parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticSetRecord parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticSetRecord parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticSetRecord parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticSetRecord parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticSetRecord parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticSetRecord parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticSetRecord parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticSetRecord parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticSetRecord parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticSetRecord prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.arpnetworking.metrics.aggregation.protocol.StatisticSetRecord}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:com.arpnetworking.metrics.aggregation.protocol.StatisticSetRecord)
        com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticSetRecordOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.arpnetworking.metrics.aggregation.protocol.Messages.internal_static_com_arpnetworking_metrics_aggregation_protocol_StatisticSetRecord_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.arpnetworking.metrics.aggregation.protocol.Messages.internal_static_com_arpnetworking_metrics_aggregation_protocol_StatisticSetRecord_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticSetRecord.class, com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticSetRecord.Builder.class);
      }

      // Construct using com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticSetRecord.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getStatisticsFieldBuilder();
          getDimensionsFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        service_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        cluster_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        metric_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        period_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        periodStart_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        if (statisticsBuilder_ == null) {
          statistics_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000020);
        } else {
          statisticsBuilder_.clear();
        }
        if (dimensionsBuilder_ == null) {
          dimensions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000040);
        } else {
          dimensionsBuilder_.clear();
        }
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.arpnetworking.metrics.aggregation.protocol.Messages.internal_static_com_arpnetworking_metrics_aggregation_protocol_StatisticSetRecord_descriptor;
      }

      public com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticSetRecord getDefaultInstanceForType() {
        return com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticSetRecord.getDefaultInstance();
      }

      public com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticSetRecord build() {
        com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticSetRecord result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticSetRecord buildPartial() {
        com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticSetRecord result = new com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticSetRecord(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.service_ = service_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.cluster_ = cluster_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.metric_ = metric_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.period_ = period_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.periodStart_ = periodStart_;
        if (statisticsBuilder_ == null) {
          if (((bitField0_ & 0x00000020) == 0x00000020)) {
            statistics_ = java.util.Collections.unmodifiableList(statistics_);
            bitField0_ = (bitField0_ & ~0x00000020);
          }
          result.statistics_ = statistics_;
        } else {
          result.statistics_ = statisticsBuilder_.build();
        }
        if (dimensionsBuilder_ == null) {
          if (((bitField0_ & 0x00000040) == 0x00000040)) {
            dimensions_ = java.util.Collections.unmodifiableList(dimensions_);
            bitField0_ = (bitField0_ & ~0x00000040);
          }
          result.dimensions_ = dimensions_;
        } else {
          result.dimensions_ = dimensionsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticSetRecord) {
          return mergeFrom((com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticSetRecord)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticSetRecord other) {
        if (other == com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticSetRecord.getDefaultInstance()) return this;
        if (other.hasService()) {
          bitField0_ |= 0x00000001;
          service_ = other.service_;
          onChanged();
        }
        if (other.hasCluster()) {
          bitField0_ |= 0x00000002;
          cluster_ = other.cluster_;
          onChanged();
        }
        if (other.hasMetric()) {
          bitField0_ |= 0x00000004;
          metric_ = other.metric_;
          onChanged();
        }
        if (other.hasPeriod()) {
          bitField0_ |= 0x00000008;
          period_ = other.period_;
          onChanged();
        }
        if (other.hasPeriodStart()) {
          bitField0_ |= 0x00000010;
          periodStart_ = other.periodStart_;
          onChanged();
        }
        if (statisticsBuilder_ == null) {
          if (!other.statistics_.isEmpty()) {
            if (statistics_.isEmpty()) {
              statistics_ = other.statistics_;
              bitField0_ = (bitField0_ & ~0x00000020);
            } else {
              ensureStatisticsIsMutable();
              statistics_.addAll(other.statistics_);
            }
            onChanged();
          }
        } else {
          if (!other.statistics_.isEmpty()) {
            if (statisticsBuilder_.isEmpty()) {
              statisticsBuilder_.dispose();
              statisticsBuilder_ = null;
              statistics_ = other.statistics_;
              bitField0_ = (bitField0_ & ~0x00000020);
              statisticsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getStatisticsFieldBuilder() : null;
            } else {
              statisticsBuilder_.addAllMessages(other.statistics_);
            }
          }
        }
        if (dimensionsBuilder_ == null) {
          if (!other.dimensions_.isEmpty()) {
            if (dimensions_.isEmpty()) {
              dimensions_ = other.dimensions_;
              bitField0_ = (bitField0_ & ~0x00000040);
            } else {
              ensureDimensionsIsMutable();
              dimensions_.addAll(other.dimensions_);
            }
            onChanged();
          }
        } else {
          if (!other.dimensions_.isEmpty()) {
            if (dimensionsBuilder_.isEmpty()) {
              dimensionsBuilder_.dispose();
              dimensionsBuilder_ = null;
              dimensions_ = other.dimensions_;
              bitField0_ = (bitField0_ & ~0x00000040);
              dimensionsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getDimensionsFieldBuilder() : null;
            } else {
              dimensionsBuilder_.addAllMessages(other.dimensions_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        if (!hasMetric()) {
          return false;
        }
        if (!hasPeriod()) {
          return false;
        }
        if (!hasPeriodStart()) {
          return false;
        }
        for (int i = 0; i < getStatisticsCount(); i++) {
          if (!getStatistics(i).isInitialized()) {
            return false;
          }
        }
        for (int i = 0; i < getDimensionsCount(); i++) {
          if (!getDimensions(i).isInitialized()) {
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticSetRecord parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticSetRecord) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object service_ = "";
      /**
       * optional string service = 1;
       */
      public boolean hasService() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional string service = 1;
       */
      public java.lang.String getService() {
        java.lang.Object ref = service_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            service_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string service = 1;
       */
      public com.google.protobuf.ByteString
          getServiceBytes() {
        java.lang.Object ref = service_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          service_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string service = 1;
       */
      public Builder setService(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        service_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string service = 1;
       */
      public Builder clearService() {
        bitField0_ = (bitField0_ & ~0x00000001);
        service_ = getDefaultInstance().getService();
        onChanged();
        return this;
      }
      /**
       * optional string service = 1;
       */
      public Builder setServiceBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        service_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object cluster_ = "";
      /**
       * optional string cluster = 2;
       */
      public boolean hasCluster() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional string cluster = 2;
       */
      public java.lang.String getCluster() {
        java.lang.Object ref = cluster_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            cluster_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string cluster = 2;
       */
      public com.google.protobuf.ByteString
          getClusterBytes() {
        java.lang.Object ref = cluster_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          cluster_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string cluster = 2;
       */
      public Builder setCluster(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        cluster_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string cluster = 2;
       */
      public Builder clearCluster() {
        bitField0_ = (bitField0_ & ~0x00000002);
        cluster_ = getDefaultInstance().getCluster();
        onChanged();
        return this;
      }
      /**
       * optional string cluster = 2;
       */
      public Builder setClusterBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        cluster_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object metric_ = "";
      /**
       * required string metric = 3;
       */
      public boolean hasMetric() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * required string metric = 3;
       */
      public java.lang.String getMetric() {
        java.lang.Object ref = metric_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            metric_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * required string metric = 3;
       */
      public com.google.protobuf.ByteString
          getMetricBytes() {
        java.lang.Object ref = metric_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          metric_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * required string metric = 3;
       */
      public Builder setMetric(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        metric_ = value;
        onChanged();
        return this;
      }
      /**
       * required string metric = 3;
       */
      public Builder clearMetric() {
        bitField0_ = (bitField0_ & ~0x00000004);
        metric_ = getDefaultInstance().getMetric();
        onChanged();
        return this;
      }
      /**
       * required string metric = 3;
       */
      public Builder setMetricBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        metric_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object period_ = "";
      /**
       * required string period = 4;
       */
      public boolean hasPeriod() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * required string period = 4;
       */
      public java.lang.String getPeriod() {
        java.lang.Object ref = period_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            period_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * required string period = 4;
       */
      public com.google.protobuf.ByteString
          getPeriodBytes() {
        java.lang.Object ref = period_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          period_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * required string period = 4;
       */
      public Builder setPeriod(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        period_ = value;
        onChanged();
        return this;
      }
      /**
       * required string period = 4;
       */
      public Builder clearPeriod() {
        bitField0_ = (bitField0_ & ~0x00000008);
        period_ = getDefaultInstance().getPeriod();
        onChanged();
        return this;
      }
      /**
       * required string period = 4;
       */
      public Builder setPeriodBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        period_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object periodStart_ = "";
      /**
       * required string period_start = 5;
       */
      public boolean hasPeriodStart() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * required string period_start = 5;
       */
      public java.lang.String getPeriodStart() {
        java.lang.Object ref = periodStart_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            periodStart_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * required string period_start = 5;
       */
      public com.google.protobuf.ByteString
          getPeriodStartBytes() {
        java.lang.Object ref = periodStart_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          periodStart_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * required string period_start = 5;
       */
      public Builder setPeriodStart(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        periodStart_ = value;
        onChanged();
        return this;
      }
      /**
       * required string period_start = 5;
       */
      public Builder clearPeriodStart() {
        bitField0_ = (bitField0_ & ~0x00000010);
        periodStart_ = getDefaultInstance().getPeriodStart();
        onChanged();
        return this;
      }
      /**
       * required string period_start = 5;
       */
      public Builder setPeriodStartBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        periodStart_ = value;
        onChanged();
        return this;
      }

      private java.util.List statistics_ =
        java.util.Collections.emptyList();
      private void ensureStatisticsIsMutable() {
        if (!((bitField0_ & 0x00000020) == 0x00000020)) {
          statistics_ = new java.util.ArrayList(statistics_);
          bitField0_ |= 0x00000020;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord, com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord.Builder, com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecordOrBuilder> statisticsBuilder_;

      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.StatisticRecord statistics = 6;
       */
      public java.util.List getStatisticsList() {
        if (statisticsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(statistics_);
        } else {
          return statisticsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.StatisticRecord statistics = 6;
       */
      public int getStatisticsCount() {
        if (statisticsBuilder_ == null) {
          return statistics_.size();
        } else {
          return statisticsBuilder_.getCount();
        }
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.StatisticRecord statistics = 6;
       */
      public com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord getStatistics(int index) {
        if (statisticsBuilder_ == null) {
          return statistics_.get(index);
        } else {
          return statisticsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.StatisticRecord statistics = 6;
       */
      public Builder setStatistics(
          int index, com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord value) {
        if (statisticsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureStatisticsIsMutable();
          statistics_.set(index, value);
          onChanged();
        } else {
          statisticsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.StatisticRecord statistics = 6;
       */
      public Builder setStatistics(
          int index, com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord.Builder builderForValue) {
        if (statisticsBuilder_ == null) {
          ensureStatisticsIsMutable();
          statistics_.set(index, builderForValue.build());
          onChanged();
        } else {
          statisticsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.StatisticRecord statistics = 6;
       */
      public Builder addStatistics(com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord value) {
        if (statisticsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureStatisticsIsMutable();
          statistics_.add(value);
          onChanged();
        } else {
          statisticsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.StatisticRecord statistics = 6;
       */
      public Builder addStatistics(
          int index, com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord value) {
        if (statisticsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureStatisticsIsMutable();
          statistics_.add(index, value);
          onChanged();
        } else {
          statisticsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.StatisticRecord statistics = 6;
       */
      public Builder addStatistics(
          com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord.Builder builderForValue) {
        if (statisticsBuilder_ == null) {
          ensureStatisticsIsMutable();
          statistics_.add(builderForValue.build());
          onChanged();
        } else {
          statisticsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.StatisticRecord statistics = 6;
       */
      public Builder addStatistics(
          int index, com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord.Builder builderForValue) {
        if (statisticsBuilder_ == null) {
          ensureStatisticsIsMutable();
          statistics_.add(index, builderForValue.build());
          onChanged();
        } else {
          statisticsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.StatisticRecord statistics = 6;
       */
      public Builder addAllStatistics(
          java.lang.Iterable values) {
        if (statisticsBuilder_ == null) {
          ensureStatisticsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, statistics_);
          onChanged();
        } else {
          statisticsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.StatisticRecord statistics = 6;
       */
      public Builder clearStatistics() {
        if (statisticsBuilder_ == null) {
          statistics_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000020);
          onChanged();
        } else {
          statisticsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.StatisticRecord statistics = 6;
       */
      public Builder removeStatistics(int index) {
        if (statisticsBuilder_ == null) {
          ensureStatisticsIsMutable();
          statistics_.remove(index);
          onChanged();
        } else {
          statisticsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.StatisticRecord statistics = 6;
       */
      public com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord.Builder getStatisticsBuilder(
          int index) {
        return getStatisticsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.StatisticRecord statistics = 6;
       */
      public com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecordOrBuilder getStatisticsOrBuilder(
          int index) {
        if (statisticsBuilder_ == null) {
          return statistics_.get(index);  } else {
          return statisticsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.StatisticRecord statistics = 6;
       */
      public java.util.List 
           getStatisticsOrBuilderList() {
        if (statisticsBuilder_ != null) {
          return statisticsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(statistics_);
        }
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.StatisticRecord statistics = 6;
       */
      public com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord.Builder addStatisticsBuilder() {
        return getStatisticsFieldBuilder().addBuilder(
            com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord.getDefaultInstance());
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.StatisticRecord statistics = 6;
       */
      public com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord.Builder addStatisticsBuilder(
          int index) {
        return getStatisticsFieldBuilder().addBuilder(
            index, com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord.getDefaultInstance());
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.StatisticRecord statistics = 6;
       */
      public java.util.List 
           getStatisticsBuilderList() {
        return getStatisticsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord, com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord.Builder, com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecordOrBuilder> 
          getStatisticsFieldBuilder() {
        if (statisticsBuilder_ == null) {
          statisticsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord, com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecord.Builder, com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticRecordOrBuilder>(
                  statistics_,
                  ((bitField0_ & 0x00000020) == 0x00000020),
                  getParentForChildren(),
                  isClean());
          statistics_ = null;
        }
        return statisticsBuilder_;
      }

      private java.util.List dimensions_ =
        java.util.Collections.emptyList();
      private void ensureDimensionsIsMutable() {
        if (!((bitField0_ & 0x00000040) == 0x00000040)) {
          dimensions_ = new java.util.ArrayList(dimensions_);
          bitField0_ |= 0x00000040;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry, com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry.Builder, com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntryOrBuilder> dimensionsBuilder_;

      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.DimensionEntry dimensions = 8;
       */
      public java.util.List getDimensionsList() {
        if (dimensionsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(dimensions_);
        } else {
          return dimensionsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.DimensionEntry dimensions = 8;
       */
      public int getDimensionsCount() {
        if (dimensionsBuilder_ == null) {
          return dimensions_.size();
        } else {
          return dimensionsBuilder_.getCount();
        }
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.DimensionEntry dimensions = 8;
       */
      public com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry getDimensions(int index) {
        if (dimensionsBuilder_ == null) {
          return dimensions_.get(index);
        } else {
          return dimensionsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.DimensionEntry dimensions = 8;
       */
      public Builder setDimensions(
          int index, com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry value) {
        if (dimensionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDimensionsIsMutable();
          dimensions_.set(index, value);
          onChanged();
        } else {
          dimensionsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.DimensionEntry dimensions = 8;
       */
      public Builder setDimensions(
          int index, com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry.Builder builderForValue) {
        if (dimensionsBuilder_ == null) {
          ensureDimensionsIsMutable();
          dimensions_.set(index, builderForValue.build());
          onChanged();
        } else {
          dimensionsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.DimensionEntry dimensions = 8;
       */
      public Builder addDimensions(com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry value) {
        if (dimensionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDimensionsIsMutable();
          dimensions_.add(value);
          onChanged();
        } else {
          dimensionsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.DimensionEntry dimensions = 8;
       */
      public Builder addDimensions(
          int index, com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry value) {
        if (dimensionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDimensionsIsMutable();
          dimensions_.add(index, value);
          onChanged();
        } else {
          dimensionsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.DimensionEntry dimensions = 8;
       */
      public Builder addDimensions(
          com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry.Builder builderForValue) {
        if (dimensionsBuilder_ == null) {
          ensureDimensionsIsMutable();
          dimensions_.add(builderForValue.build());
          onChanged();
        } else {
          dimensionsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.DimensionEntry dimensions = 8;
       */
      public Builder addDimensions(
          int index, com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry.Builder builderForValue) {
        if (dimensionsBuilder_ == null) {
          ensureDimensionsIsMutable();
          dimensions_.add(index, builderForValue.build());
          onChanged();
        } else {
          dimensionsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.DimensionEntry dimensions = 8;
       */
      public Builder addAllDimensions(
          java.lang.Iterable values) {
        if (dimensionsBuilder_ == null) {
          ensureDimensionsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, dimensions_);
          onChanged();
        } else {
          dimensionsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.DimensionEntry dimensions = 8;
       */
      public Builder clearDimensions() {
        if (dimensionsBuilder_ == null) {
          dimensions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000040);
          onChanged();
        } else {
          dimensionsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.DimensionEntry dimensions = 8;
       */
      public Builder removeDimensions(int index) {
        if (dimensionsBuilder_ == null) {
          ensureDimensionsIsMutable();
          dimensions_.remove(index);
          onChanged();
        } else {
          dimensionsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.DimensionEntry dimensions = 8;
       */
      public com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry.Builder getDimensionsBuilder(
          int index) {
        return getDimensionsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.DimensionEntry dimensions = 8;
       */
      public com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntryOrBuilder getDimensionsOrBuilder(
          int index) {
        if (dimensionsBuilder_ == null) {
          return dimensions_.get(index);  } else {
          return dimensionsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.DimensionEntry dimensions = 8;
       */
      public java.util.List 
           getDimensionsOrBuilderList() {
        if (dimensionsBuilder_ != null) {
          return dimensionsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(dimensions_);
        }
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.DimensionEntry dimensions = 8;
       */
      public com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry.Builder addDimensionsBuilder() {
        return getDimensionsFieldBuilder().addBuilder(
            com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry.getDefaultInstance());
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.DimensionEntry dimensions = 8;
       */
      public com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry.Builder addDimensionsBuilder(
          int index) {
        return getDimensionsFieldBuilder().addBuilder(
            index, com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry.getDefaultInstance());
      }
      /**
       * repeated .com.arpnetworking.metrics.aggregation.protocol.DimensionEntry dimensions = 8;
       */
      public java.util.List 
           getDimensionsBuilderList() {
        return getDimensionsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry, com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry.Builder, com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntryOrBuilder> 
          getDimensionsFieldBuilder() {
        if (dimensionsBuilder_ == null) {
          dimensionsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry, com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry.Builder, com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntryOrBuilder>(
                  dimensions_,
                  ((bitField0_ & 0x00000040) == 0x00000040),
                  getParentForChildren(),
                  isClean());
          dimensions_ = null;
        }
        return dimensionsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:com.arpnetworking.metrics.aggregation.protocol.StatisticSetRecord)
    }

    // @@protoc_insertion_point(class_scope:com.arpnetworking.metrics.aggregation.protocol.StatisticSetRecord)
    private static final com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticSetRecord DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticSetRecord();
    }

    public static com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticSetRecord getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      public StatisticSetRecord parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        try {
          return new StatisticSetRecord(input, extensionRegistry);
        } catch (RuntimeException e) {
          if (e.getCause() instanceof
              com.google.protobuf.InvalidProtocolBufferException) {
            throw (com.google.protobuf.InvalidProtocolBufferException)
                e.getCause();
          }
          throw e;
        }
      }
    };

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

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

    public com.arpnetworking.metrics.aggregation.protocol.Messages.StatisticSetRecord getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface HeartbeatRecordOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.arpnetworking.metrics.aggregation.protocol.HeartbeatRecord)
      com.google.protobuf.MessageOrBuilder {

    /**
     * required string timestamp = 1;
     */
    boolean hasTimestamp();
    /**
     * required string timestamp = 1;
     */
    java.lang.String getTimestamp();
    /**
     * required string timestamp = 1;
     */
    com.google.protobuf.ByteString
        getTimestampBytes();
  }
  /**
   * Protobuf type {@code com.arpnetworking.metrics.aggregation.protocol.HeartbeatRecord}
   */
  public  static final class HeartbeatRecord extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:com.arpnetworking.metrics.aggregation.protocol.HeartbeatRecord)
      HeartbeatRecordOrBuilder {
    // Use HeartbeatRecord.newBuilder() to construct.
    private HeartbeatRecord(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
    }
    private HeartbeatRecord() {
      timestamp_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private HeartbeatRecord(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
      this();
      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;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              timestamp_ = bs;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw new RuntimeException(e.setUnfinishedMessage(this));
      } catch (java.io.IOException e) {
        throw new RuntimeException(
            new com.google.protobuf.InvalidProtocolBufferException(
                e.getMessage()).setUnfinishedMessage(this));
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.arpnetworking.metrics.aggregation.protocol.Messages.internal_static_com_arpnetworking_metrics_aggregation_protocol_HeartbeatRecord_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.arpnetworking.metrics.aggregation.protocol.Messages.internal_static_com_arpnetworking_metrics_aggregation_protocol_HeartbeatRecord_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.arpnetworking.metrics.aggregation.protocol.Messages.HeartbeatRecord.class, com.arpnetworking.metrics.aggregation.protocol.Messages.HeartbeatRecord.Builder.class);
    }

    private int bitField0_;
    public static final int TIMESTAMP_FIELD_NUMBER = 1;
    private volatile java.lang.Object timestamp_;
    /**
     * required string timestamp = 1;
     */
    public boolean hasTimestamp() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required string timestamp = 1;
     */
    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();
        if (bs.isValidUtf8()) {
          timestamp_ = s;
        }
        return s;
      }
    }
    /**
     * required string timestamp = 1;
     */
    public com.google.protobuf.ByteString
        getTimestampBytes() {
      java.lang.Object ref = timestamp_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        timestamp_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasTimestamp()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 1, timestamp_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(1, timestamp_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.HeartbeatRecord parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.HeartbeatRecord parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.HeartbeatRecord parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.HeartbeatRecord parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.HeartbeatRecord parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.HeartbeatRecord parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.HeartbeatRecord parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.HeartbeatRecord parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.HeartbeatRecord parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.HeartbeatRecord parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.arpnetworking.metrics.aggregation.protocol.Messages.HeartbeatRecord prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.arpnetworking.metrics.aggregation.protocol.HeartbeatRecord}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:com.arpnetworking.metrics.aggregation.protocol.HeartbeatRecord)
        com.arpnetworking.metrics.aggregation.protocol.Messages.HeartbeatRecordOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.arpnetworking.metrics.aggregation.protocol.Messages.internal_static_com_arpnetworking_metrics_aggregation_protocol_HeartbeatRecord_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.arpnetworking.metrics.aggregation.protocol.Messages.internal_static_com_arpnetworking_metrics_aggregation_protocol_HeartbeatRecord_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.arpnetworking.metrics.aggregation.protocol.Messages.HeartbeatRecord.class, com.arpnetworking.metrics.aggregation.protocol.Messages.HeartbeatRecord.Builder.class);
      }

      // Construct using com.arpnetworking.metrics.aggregation.protocol.Messages.HeartbeatRecord.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        timestamp_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.arpnetworking.metrics.aggregation.protocol.Messages.internal_static_com_arpnetworking_metrics_aggregation_protocol_HeartbeatRecord_descriptor;
      }

      public com.arpnetworking.metrics.aggregation.protocol.Messages.HeartbeatRecord getDefaultInstanceForType() {
        return com.arpnetworking.metrics.aggregation.protocol.Messages.HeartbeatRecord.getDefaultInstance();
      }

      public com.arpnetworking.metrics.aggregation.protocol.Messages.HeartbeatRecord build() {
        com.arpnetworking.metrics.aggregation.protocol.Messages.HeartbeatRecord result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.arpnetworking.metrics.aggregation.protocol.Messages.HeartbeatRecord buildPartial() {
        com.arpnetworking.metrics.aggregation.protocol.Messages.HeartbeatRecord result = new com.arpnetworking.metrics.aggregation.protocol.Messages.HeartbeatRecord(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.timestamp_ = timestamp_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.arpnetworking.metrics.aggregation.protocol.Messages.HeartbeatRecord) {
          return mergeFrom((com.arpnetworking.metrics.aggregation.protocol.Messages.HeartbeatRecord)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.arpnetworking.metrics.aggregation.protocol.Messages.HeartbeatRecord other) {
        if (other == com.arpnetworking.metrics.aggregation.protocol.Messages.HeartbeatRecord.getDefaultInstance()) return this;
        if (other.hasTimestamp()) {
          bitField0_ |= 0x00000001;
          timestamp_ = other.timestamp_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        if (!hasTimestamp()) {
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.arpnetworking.metrics.aggregation.protocol.Messages.HeartbeatRecord parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.arpnetworking.metrics.aggregation.protocol.Messages.HeartbeatRecord) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object timestamp_ = "";
      /**
       * required string timestamp = 1;
       */
      public boolean hasTimestamp() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required string timestamp = 1;
       */
      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();
          if (bs.isValidUtf8()) {
            timestamp_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * required string timestamp = 1;
       */
      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;
        }
      }
      /**
       * required string timestamp = 1;
       */
      public Builder setTimestamp(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        timestamp_ = value;
        onChanged();
        return this;
      }
      /**
       * required string timestamp = 1;
       */
      public Builder clearTimestamp() {
        bitField0_ = (bitField0_ & ~0x00000001);
        timestamp_ = getDefaultInstance().getTimestamp();
        onChanged();
        return this;
      }
      /**
       * required string timestamp = 1;
       */
      public Builder setTimestampBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        timestamp_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:com.arpnetworking.metrics.aggregation.protocol.HeartbeatRecord)
    }

    // @@protoc_insertion_point(class_scope:com.arpnetworking.metrics.aggregation.protocol.HeartbeatRecord)
    private static final com.arpnetworking.metrics.aggregation.protocol.Messages.HeartbeatRecord DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.arpnetworking.metrics.aggregation.protocol.Messages.HeartbeatRecord();
    }

    public static com.arpnetworking.metrics.aggregation.protocol.Messages.HeartbeatRecord getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      public HeartbeatRecord parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        try {
          return new HeartbeatRecord(input, extensionRegistry);
        } catch (RuntimeException e) {
          if (e.getCause() instanceof
              com.google.protobuf.InvalidProtocolBufferException) {
            throw (com.google.protobuf.InvalidProtocolBufferException)
                e.getCause();
          }
          throw e;
        }
      }
    };

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

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

    public com.arpnetworking.metrics.aggregation.protocol.Messages.HeartbeatRecord getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface DimensionEntryOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.arpnetworking.metrics.aggregation.protocol.DimensionEntry)
      com.google.protobuf.MessageOrBuilder {

    /**
     * required string key = 1;
     */
    boolean hasKey();
    /**
     * required string key = 1;
     */
    java.lang.String getKey();
    /**
     * required string key = 1;
     */
    com.google.protobuf.ByteString
        getKeyBytes();

    /**
     * required string value = 2;
     */
    boolean hasValue();
    /**
     * required string value = 2;
     */
    java.lang.String getValue();
    /**
     * required string value = 2;
     */
    com.google.protobuf.ByteString
        getValueBytes();
  }
  /**
   * Protobuf type {@code com.arpnetworking.metrics.aggregation.protocol.DimensionEntry}
   */
  public  static final class DimensionEntry extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:com.arpnetworking.metrics.aggregation.protocol.DimensionEntry)
      DimensionEntryOrBuilder {
    // Use DimensionEntry.newBuilder() to construct.
    private DimensionEntry(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
    }
    private DimensionEntry() {
      key_ = "";
      value_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private DimensionEntry(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
      this();
      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;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              key_ = bs;
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              value_ = bs;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw new RuntimeException(e.setUnfinishedMessage(this));
      } catch (java.io.IOException e) {
        throw new RuntimeException(
            new com.google.protobuf.InvalidProtocolBufferException(
                e.getMessage()).setUnfinishedMessage(this));
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.arpnetworking.metrics.aggregation.protocol.Messages.internal_static_com_arpnetworking_metrics_aggregation_protocol_DimensionEntry_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.arpnetworking.metrics.aggregation.protocol.Messages.internal_static_com_arpnetworking_metrics_aggregation_protocol_DimensionEntry_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry.class, com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry.Builder.class);
    }

    private int bitField0_;
    public static final int KEY_FIELD_NUMBER = 1;
    private volatile java.lang.Object key_;
    /**
     * required string key = 1;
     */
    public boolean hasKey() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required string key = 1;
     */
    public java.lang.String getKey() {
      java.lang.Object ref = key_;
      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 (bs.isValidUtf8()) {
          key_ = s;
        }
        return s;
      }
    }
    /**
     * required string key = 1;
     */
    public com.google.protobuf.ByteString
        getKeyBytes() {
      java.lang.Object ref = key_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        key_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VALUE_FIELD_NUMBER = 2;
    private volatile java.lang.Object value_;
    /**
     * required string value = 2;
     */
    public boolean hasValue() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required string value = 2;
     */
    public java.lang.String getValue() {
      java.lang.Object 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 (bs.isValidUtf8()) {
          value_ = s;
        }
        return s;
      }
    }
    /**
     * required string value = 2;
     */
    public com.google.protobuf.ByteString
        getValueBytes() {
      java.lang.Object ref = value_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        value_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasKey()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasValue()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 1, key_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, value_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(1, key_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, value_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.arpnetworking.metrics.aggregation.protocol.DimensionEntry}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:com.arpnetworking.metrics.aggregation.protocol.DimensionEntry)
        com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntryOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.arpnetworking.metrics.aggregation.protocol.Messages.internal_static_com_arpnetworking_metrics_aggregation_protocol_DimensionEntry_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.arpnetworking.metrics.aggregation.protocol.Messages.internal_static_com_arpnetworking_metrics_aggregation_protocol_DimensionEntry_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry.class, com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry.Builder.class);
      }

      // Construct using com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        key_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        value_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.arpnetworking.metrics.aggregation.protocol.Messages.internal_static_com_arpnetworking_metrics_aggregation_protocol_DimensionEntry_descriptor;
      }

      public com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry getDefaultInstanceForType() {
        return com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry.getDefaultInstance();
      }

      public com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry build() {
        com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry buildPartial() {
        com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry result = new com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.key_ = key_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.value_ = value_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry) {
          return mergeFrom((com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry other) {
        if (other == com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry.getDefaultInstance()) return this;
        if (other.hasKey()) {
          bitField0_ |= 0x00000001;
          key_ = other.key_;
          onChanged();
        }
        if (other.hasValue()) {
          bitField0_ |= 0x00000002;
          value_ = other.value_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        if (!hasKey()) {
          return false;
        }
        if (!hasValue()) {
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object key_ = "";
      /**
       * required string key = 1;
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required string key = 1;
       */
      public java.lang.String getKey() {
        java.lang.Object ref = key_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            key_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * required string key = 1;
       */
      public com.google.protobuf.ByteString
          getKeyBytes() {
        java.lang.Object ref = key_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          key_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * required string key = 1;
       */
      public Builder setKey(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        key_ = value;
        onChanged();
        return this;
      }
      /**
       * required string key = 1;
       */
      public Builder clearKey() {
        bitField0_ = (bitField0_ & ~0x00000001);
        key_ = getDefaultInstance().getKey();
        onChanged();
        return this;
      }
      /**
       * required string key = 1;
       */
      public Builder setKeyBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        key_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object value_ = "";
      /**
       * required string value = 2;
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required string value = 2;
       */
      public java.lang.String getValue() {
        java.lang.Object 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 (bs.isValidUtf8()) {
            value_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * required string value = 2;
       */
      public com.google.protobuf.ByteString
          getValueBytes() {
        java.lang.Object ref = value_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          value_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * required string value = 2;
       */
      public Builder setValue(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * required string value = 2;
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000002);
        value_ = getDefaultInstance().getValue();
        onChanged();
        return this;
      }
      /**
       * required string value = 2;
       */
      public Builder setValueBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        value_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:com.arpnetworking.metrics.aggregation.protocol.DimensionEntry)
    }

    // @@protoc_insertion_point(class_scope:com.arpnetworking.metrics.aggregation.protocol.DimensionEntry)
    private static final com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry();
    }

    public static com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      public DimensionEntry parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        try {
          return new DimensionEntry(input, extensionRegistry);
        } catch (RuntimeException e) {
          if (e.getCause() instanceof
              com.google.protobuf.InvalidProtocolBufferException) {
            throw (com.google.protobuf.InvalidProtocolBufferException)
                e.getCause();
          }
          throw e;
        }
      }
    };

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

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

    public com.arpnetworking.metrics.aggregation.protocol.Messages.DimensionEntry getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_com_arpnetworking_metrics_aggregation_protocol_StatisticRecord_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_arpnetworking_metrics_aggregation_protocol_StatisticRecord_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_com_arpnetworking_metrics_aggregation_protocol_SamplesSupportingData_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_arpnetworking_metrics_aggregation_protocol_SamplesSupportingData_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_com_arpnetworking_metrics_aggregation_protocol_SparseHistogramEntry_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_arpnetworking_metrics_aggregation_protocol_SparseHistogramEntry_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_com_arpnetworking_metrics_aggregation_protocol_SparseHistogramSupportingData_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_arpnetworking_metrics_aggregation_protocol_SparseHistogramSupportingData_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_com_arpnetworking_metrics_aggregation_protocol_HostIdentification_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_arpnetworking_metrics_aggregation_protocol_HostIdentification_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_com_arpnetworking_metrics_aggregation_protocol_StatisticSetRecord_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_arpnetworking_metrics_aggregation_protocol_StatisticSetRecord_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_com_arpnetworking_metrics_aggregation_protocol_HeartbeatRecord_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_arpnetworking_metrics_aggregation_protocol_HeartbeatRecord_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_com_arpnetworking_metrics_aggregation_protocol_DimensionEntry_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_com_arpnetworking_metrics_aggregation_protocol_DimensionEntry_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\016messages.proto\022.com.arpnetworking.metr" +
      "ics.aggregation.protocol\"r\n\017StatisticRec" +
      "ord\022\021\n\tstatistic\030\001 \002(\t\022\r\n\005value\030\002 \002(\001\022\014\n" +
      "\004unit\030\003 \002(\t\022\026\n\016user_specified\030\004 \002(\010\022\027\n\017s" +
      "upporting_data\030\005 \001(\014\":\n\025SamplesSupportin" +
      "gData\022\014\n\004unit\030\001 \002(\t\022\023\n\007samples\030\002 \003(\001B\002\020\001" +
      "\"5\n\024SparseHistogramEntry\022\016\n\006bucket\030\001 \002(\001" +
      "\022\r\n\005count\030\002 \002(\005\"\204\001\n\035SparseHistogramSuppo" +
      "rtingData\022\014\n\004unit\030\001 \002(\t\022U\n\007entries\030\002 \003(\013" +
      "2D.com.arpnetworking.metrics.aggregation",
      ".protocol.SparseHistogramEntry\"N\n\022HostId" +
      "entification\022\021\n\thost_name\030\001 \001(\t\022\024\n\014clust" +
      "er_name\030\002 \001(\t\022\017\n\007version\030\003 \001(\t\"\233\002\n\022Stati" +
      "sticSetRecord\022\017\n\007service\030\001 \001(\t\022\017\n\007cluste" +
      "r\030\002 \001(\t\022\016\n\006metric\030\003 \002(\t\022\016\n\006period\030\004 \002(\t\022" +
      "\024\n\014period_start\030\005 \002(\t\022S\n\nstatistics\030\006 \003(" +
      "\0132?.com.arpnetworking.metrics.aggregatio" +
      "n.protocol.StatisticRecord\022R\n\ndimensions" +
      "\030\010 \003(\0132>.com.arpnetworking.metrics.aggre" +
      "gation.protocol.DimensionEntryJ\004\010\007\020\010\"$\n\017",
      "HeartbeatRecord\022\021\n\ttimestamp\030\001 \002(\t\",\n\016Di" +
      "mensionEntry\022\013\n\003key\030\001 \002(\t\022\r\n\005value\030\002 \002(\t" +
      "B0\n.com.arpnetworking.metrics.aggregatio" +
      "n.protocol"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
        new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
          public com.google.protobuf.ExtensionRegistry assignDescriptors(
              com.google.protobuf.Descriptors.FileDescriptor root) {
            descriptor = root;
            return null;
          }
        };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        }, assigner);
    internal_static_com_arpnetworking_metrics_aggregation_protocol_StatisticRecord_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_com_arpnetworking_metrics_aggregation_protocol_StatisticRecord_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_com_arpnetworking_metrics_aggregation_protocol_StatisticRecord_descriptor,
        new java.lang.String[] { "Statistic", "Value", "Unit", "UserSpecified", "SupportingData", });
    internal_static_com_arpnetworking_metrics_aggregation_protocol_SamplesSupportingData_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_com_arpnetworking_metrics_aggregation_protocol_SamplesSupportingData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_com_arpnetworking_metrics_aggregation_protocol_SamplesSupportingData_descriptor,
        new java.lang.String[] { "Unit", "Samples", });
    internal_static_com_arpnetworking_metrics_aggregation_protocol_SparseHistogramEntry_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_com_arpnetworking_metrics_aggregation_protocol_SparseHistogramEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_com_arpnetworking_metrics_aggregation_protocol_SparseHistogramEntry_descriptor,
        new java.lang.String[] { "Bucket", "Count", });
    internal_static_com_arpnetworking_metrics_aggregation_protocol_SparseHistogramSupportingData_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_com_arpnetworking_metrics_aggregation_protocol_SparseHistogramSupportingData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_com_arpnetworking_metrics_aggregation_protocol_SparseHistogramSupportingData_descriptor,
        new java.lang.String[] { "Unit", "Entries", });
    internal_static_com_arpnetworking_metrics_aggregation_protocol_HostIdentification_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_com_arpnetworking_metrics_aggregation_protocol_HostIdentification_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_com_arpnetworking_metrics_aggregation_protocol_HostIdentification_descriptor,
        new java.lang.String[] { "HostName", "ClusterName", "Version", });
    internal_static_com_arpnetworking_metrics_aggregation_protocol_StatisticSetRecord_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_com_arpnetworking_metrics_aggregation_protocol_StatisticSetRecord_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_com_arpnetworking_metrics_aggregation_protocol_StatisticSetRecord_descriptor,
        new java.lang.String[] { "Service", "Cluster", "Metric", "Period", "PeriodStart", "Statistics", "Dimensions", });
    internal_static_com_arpnetworking_metrics_aggregation_protocol_HeartbeatRecord_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_com_arpnetworking_metrics_aggregation_protocol_HeartbeatRecord_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_com_arpnetworking_metrics_aggregation_protocol_HeartbeatRecord_descriptor,
        new java.lang.String[] { "Timestamp", });
    internal_static_com_arpnetworking_metrics_aggregation_protocol_DimensionEntry_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_com_arpnetworking_metrics_aggregation_protocol_DimensionEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_com_arpnetworking_metrics_aggregation_protocol_DimensionEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
  }

  // @@protoc_insertion_point(outer_class_scope)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy