public final class

DataProto

extends java.lang.Object

 java.lang.Object

↳androidx.health.platform.client.proto.DataProto

Gradle dependencies

compile group: 'androidx.health.connect', name: 'connect-client-proto', version: '1.1.0-alpha08'

  • groupId: androidx.health.connect
  • artifactId: connect-client-proto
  • version: 1.1.0-alpha08

Artifact androidx.health.connect:connect-client-proto:1.1.0-alpha08 it located at Google repository (https://maven.google.com/)

Summary

Methods
public static voidregisterAllExtensions(com.google.protobuf.ExtensionRegistryLite registry)

from java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Methods

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

Source

// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: data.proto

package androidx.health.platform.client.proto;

public final class DataProto {
  private DataProto() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }
  public interface DataTypeOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.health.platform.client.proto.DataType)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>optional string name = 1;</code>
     * @return Whether the name field is set.
     */
    boolean hasName();
    /**
     * <code>optional string name = 1;</code>
     * @return The name.
     */
    java.lang.String getName();
    /**
     * <code>optional string name = 1;</code>
     * @return The bytes for name.
     */
    com.google.protobuf.ByteString
        getNameBytes();
  }
  /**
   * <pre>
   * Unknown data type names will be ignored.
   * </pre>
   *
   * Protobuf type {@code androidx.health.platform.client.proto.DataType}
   */
  public  static final class DataType extends
      com.google.protobuf.GeneratedMessageLite<
          DataType, DataType.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.health.platform.client.proto.DataType)
      DataTypeOrBuilder {
    private DataType() {
      name_ = "";
    }
    private int bitField0_;
    public static final int NAME_FIELD_NUMBER = 1;
    private java.lang.String name_;
    /**
     * <code>optional string name = 1;</code>
     * @return Whether the name field is set.
     */
    @java.lang.Override
    public boolean hasName() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional string name = 1;</code>
     * @return The name.
     */
    @java.lang.Override
    public java.lang.String getName() {
      return name_;
    }
    /**
     * <code>optional string name = 1;</code>
     * @return The bytes for name.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getNameBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(name_);
    }
    /**
     * <code>optional string name = 1;</code>
     * @param value The name to set.
     */
    private void setName(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  bitField0_ |= 0x00000001;
      name_ = value;
    }
    /**
     * <code>optional string name = 1;</code>
     */
    private void clearName() {
      bitField0_ = (bitField0_ & ~0x00000001);
      name_ = getDefaultInstance().getName();
    }
    /**
     * <code>optional string name = 1;</code>
     * @param value The bytes for name to set.
     */
    private void setNameBytes(
        com.google.protobuf.ByteString value) {
      name_ = value.toStringUtf8();
      bitField0_ |= 0x00000001;
    }

    public static androidx.health.platform.client.proto.DataProto.DataType parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.health.platform.client.proto.DataProto.DataType parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.DataType parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.health.platform.client.proto.DataProto.DataType parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.DataType parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.health.platform.client.proto.DataProto.DataType parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.DataType parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.health.platform.client.proto.DataProto.DataType parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.DataType parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.health.platform.client.proto.DataProto.DataType parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.DataType parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.health.platform.client.proto.DataProto.DataType parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.health.platform.client.proto.DataProto.DataType prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Unknown data type names will be ignored.
     * </pre>
     *
     * Protobuf type {@code androidx.health.platform.client.proto.DataType}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.health.platform.client.proto.DataProto.DataType, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.health.platform.client.proto.DataType)
        androidx.health.platform.client.proto.DataProto.DataTypeOrBuilder {
      // Construct using androidx.health.platform.client.proto.DataProto.DataType.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>optional string name = 1;</code>
       * @return Whether the name field is set.
       */
      @java.lang.Override
      public boolean hasName() {
        return instance.hasName();
      }
      /**
       * <code>optional string name = 1;</code>
       * @return The name.
       */
      @java.lang.Override
      public java.lang.String getName() {
        return instance.getName();
      }
      /**
       * <code>optional string name = 1;</code>
       * @return The bytes for name.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getNameBytes() {
        return instance.getNameBytes();
      }
      /**
       * <code>optional string name = 1;</code>
       * @param value The name to set.
       * @return This builder for chaining.
       */
      public Builder setName(
          java.lang.String value) {
        copyOnWrite();
        instance.setName(value);
        return this;
      }
      /**
       * <code>optional string name = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearName() {
        copyOnWrite();
        instance.clearName();
        return this;
      }
      /**
       * <code>optional string name = 1;</code>
       * @param value The bytes for name to set.
       * @return This builder for chaining.
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setNameBytes(value);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.health.platform.client.proto.DataType)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.health.platform.client.proto.DataProto.DataType();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "name_",
            };
            java.lang.String info =
                "\u0001\u0001\u0000\u0001\u0001\u0001\u0001\u0000\u0000\u0000\u0001\u1008\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.health.platform.client.proto.DataProto.DataType> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.health.platform.client.proto.DataProto.DataType.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.health.platform.client.proto.DataProto.DataType>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.health.platform.client.proto.DataType)
    private static final androidx.health.platform.client.proto.DataProto.DataType DEFAULT_INSTANCE;
    static {
      DataType defaultInstance = new DataType();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        DataType.class, defaultInstance);
    }

    public static androidx.health.platform.client.proto.DataProto.DataType getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<DataType> PARSER;

    public static com.google.protobuf.Parser<DataType> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface ValueOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.health.platform.client.proto.Value)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>int64 long_val = 1;</code>
     * @return Whether the longVal field is set.
     */
    boolean hasLongVal();
    /**
     * <code>int64 long_val = 1;</code>
     * @return The longVal.
     */
    long getLongVal();

    /**
     * <code>double double_val = 2;</code>
     * @return Whether the doubleVal field is set.
     */
    boolean hasDoubleVal();
    /**
     * <code>double double_val = 2;</code>
     * @return The doubleVal.
     */
    double getDoubleVal();

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

    /**
     * <code>string enum_val = 4;</code>
     * @return Whether the enumVal field is set.
     */
    boolean hasEnumVal();
    /**
     * <code>string enum_val = 4;</code>
     * @return The enumVal.
     */
    java.lang.String getEnumVal();
    /**
     * <code>string enum_val = 4;</code>
     * @return The bytes for enumVal.
     */
    com.google.protobuf.ByteString
        getEnumValBytes();

    /**
     * <code>bool boolean_val = 5;</code>
     * @return Whether the booleanVal field is set.
     */
    boolean hasBooleanVal();
    /**
     * <code>bool boolean_val = 5;</code>
     * @return The booleanVal.
     */
    boolean getBooleanVal();

    public androidx.health.platform.client.proto.DataProto.Value.ValueCase getValueCase();
  }
  /**
   * Protobuf type {@code androidx.health.platform.client.proto.Value}
   */
  public  static final class Value extends
      com.google.protobuf.GeneratedMessageLite<
          Value, Value.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.health.platform.client.proto.Value)
      ValueOrBuilder {
    private Value() {
    }
    private int bitField0_;
    private int valueCase_ = 0;
    private java.lang.Object value_;
    public enum ValueCase {
      LONG_VAL(1),
      DOUBLE_VAL(2),
      STRING_VAL(3),
      ENUM_VAL(4),
      BOOLEAN_VAL(5),
      VALUE_NOT_SET(0);
      private final int value;
      private ValueCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ValueCase valueOf(int value) {
        return forNumber(value);
      }

      public static ValueCase forNumber(int value) {
        switch (value) {
          case 1: return LONG_VAL;
          case 2: return DOUBLE_VAL;
          case 3: return STRING_VAL;
          case 4: return ENUM_VAL;
          case 5: return BOOLEAN_VAL;
          case 0: return VALUE_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    @java.lang.Override
    public ValueCase
    getValueCase() {
      return ValueCase.forNumber(
          valueCase_);
    }

    private void clearValue() {
      valueCase_ = 0;
      value_ = null;
    }

    public static final int LONG_VAL_FIELD_NUMBER = 1;
    /**
     * <code>int64 long_val = 1;</code>
     * @return Whether the longVal field is set.
     */
    @java.lang.Override
    public boolean hasLongVal() {
      return valueCase_ == 1;
    }
    /**
     * <code>int64 long_val = 1;</code>
     * @return The longVal.
     */
    @java.lang.Override
    public long getLongVal() {
      if (valueCase_ == 1) {
        return (java.lang.Long) value_;
      }
      return 0L;
    }
    /**
     * <code>int64 long_val = 1;</code>
     * @param value The longVal to set.
     */
    private void setLongVal(long value) {
      valueCase_ = 1;
      value_ = value;
    }
    /**
     * <code>int64 long_val = 1;</code>
     */
    private void clearLongVal() {
      if (valueCase_ == 1) {
        valueCase_ = 0;
        value_ = null;
      }
    }

    public static final int DOUBLE_VAL_FIELD_NUMBER = 2;
    /**
     * <code>double double_val = 2;</code>
     * @return Whether the doubleVal field is set.
     */
    @java.lang.Override
    public boolean hasDoubleVal() {
      return valueCase_ == 2;
    }
    /**
     * <code>double double_val = 2;</code>
     * @return The doubleVal.
     */
    @java.lang.Override
    public double getDoubleVal() {
      if (valueCase_ == 2) {
        return (java.lang.Double) value_;
      }
      return 0D;
    }
    /**
     * <code>double double_val = 2;</code>
     * @param value The doubleVal to set.
     */
    private void setDoubleVal(double value) {
      valueCase_ = 2;
      value_ = value;
    }
    /**
     * <code>double double_val = 2;</code>
     */
    private void clearDoubleVal() {
      if (valueCase_ == 2) {
        valueCase_ = 0;
        value_ = null;
      }
    }

    public static final int STRING_VAL_FIELD_NUMBER = 3;
    /**
     * <code>string string_val = 3;</code>
     * @return Whether the stringVal field is set.
     */
    @java.lang.Override
    public boolean hasStringVal() {
      return valueCase_ == 3;
    }
    /**
     * <code>string string_val = 3;</code>
     * @return The stringVal.
     */
    @java.lang.Override
    public java.lang.String getStringVal() {
      java.lang.String ref = "";
      if (valueCase_ == 3) {
        ref = (java.lang.String) value_;
      }
      return ref;
    }
    /**
     * <code>string string_val = 3;</code>
     * @return The bytes for stringVal.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getStringValBytes() {
      java.lang.String ref = "";
      if (valueCase_ == 3) {
        ref = (java.lang.String) value_;
      }
      return com.google.protobuf.ByteString.copyFromUtf8(ref);
    }
    /**
     * <code>string string_val = 3;</code>
     * @param value The stringVal to set.
     */
    private void setStringVal(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  valueCase_ = 3;
      value_ = value;
    }
    /**
     * <code>string string_val = 3;</code>
     */
    private void clearStringVal() {
      if (valueCase_ == 3) {
        valueCase_ = 0;
        value_ = null;
      }
    }
    /**
     * <code>string string_val = 3;</code>
     * @param value The bytes for stringVal to set.
     */
    private void setStringValBytes(
        com.google.protobuf.ByteString value) {
      value_ = value.toStringUtf8();
      valueCase_ = 3;
    }

    public static final int ENUM_VAL_FIELD_NUMBER = 4;
    /**
     * <code>string enum_val = 4;</code>
     * @return Whether the enumVal field is set.
     */
    @java.lang.Override
    public boolean hasEnumVal() {
      return valueCase_ == 4;
    }
    /**
     * <code>string enum_val = 4;</code>
     * @return The enumVal.
     */
    @java.lang.Override
    public java.lang.String getEnumVal() {
      java.lang.String ref = "";
      if (valueCase_ == 4) {
        ref = (java.lang.String) value_;
      }
      return ref;
    }
    /**
     * <code>string enum_val = 4;</code>
     * @return The bytes for enumVal.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getEnumValBytes() {
      java.lang.String ref = "";
      if (valueCase_ == 4) {
        ref = (java.lang.String) value_;
      }
      return com.google.protobuf.ByteString.copyFromUtf8(ref);
    }
    /**
     * <code>string enum_val = 4;</code>
     * @param value The enumVal to set.
     */
    private void setEnumVal(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  valueCase_ = 4;
      value_ = value;
    }
    /**
     * <code>string enum_val = 4;</code>
     */
    private void clearEnumVal() {
      if (valueCase_ == 4) {
        valueCase_ = 0;
        value_ = null;
      }
    }
    /**
     * <code>string enum_val = 4;</code>
     * @param value The bytes for enumVal to set.
     */
    private void setEnumValBytes(
        com.google.protobuf.ByteString value) {
      value_ = value.toStringUtf8();
      valueCase_ = 4;
    }

    public static final int BOOLEAN_VAL_FIELD_NUMBER = 5;
    /**
     * <code>bool boolean_val = 5;</code>
     * @return Whether the booleanVal field is set.
     */
    @java.lang.Override
    public boolean hasBooleanVal() {
      return valueCase_ == 5;
    }
    /**
     * <code>bool boolean_val = 5;</code>
     * @return The booleanVal.
     */
    @java.lang.Override
    public boolean getBooleanVal() {
      if (valueCase_ == 5) {
        return (java.lang.Boolean) value_;
      }
      return false;
    }
    /**
     * <code>bool boolean_val = 5;</code>
     * @param value The booleanVal to set.
     */
    private void setBooleanVal(boolean value) {
      valueCase_ = 5;
      value_ = value;
    }
    /**
     * <code>bool boolean_val = 5;</code>
     */
    private void clearBooleanVal() {
      if (valueCase_ == 5) {
        valueCase_ = 0;
        value_ = null;
      }
    }

    public static androidx.health.platform.client.proto.DataProto.Value parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.health.platform.client.proto.DataProto.Value parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.Value parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.health.platform.client.proto.DataProto.Value parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.Value parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.health.platform.client.proto.DataProto.Value parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.Value parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.health.platform.client.proto.DataProto.Value parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.Value parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.health.platform.client.proto.DataProto.Value parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.Value parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.health.platform.client.proto.DataProto.Value parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.health.platform.client.proto.DataProto.Value prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code androidx.health.platform.client.proto.Value}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.health.platform.client.proto.DataProto.Value, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.health.platform.client.proto.Value)
        androidx.health.platform.client.proto.DataProto.ValueOrBuilder {
      // Construct using androidx.health.platform.client.proto.DataProto.Value.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      @java.lang.Override
      public ValueCase
          getValueCase() {
        return instance.getValueCase();
      }

      public Builder clearValue() {
        copyOnWrite();
        instance.clearValue();
        return this;
      }


      /**
       * <code>int64 long_val = 1;</code>
       * @return Whether the longVal field is set.
       */
      @java.lang.Override
      public boolean hasLongVal() {
        return instance.hasLongVal();
      }
      /**
       * <code>int64 long_val = 1;</code>
       * @return The longVal.
       */
      @java.lang.Override
      public long getLongVal() {
        return instance.getLongVal();
      }
      /**
       * <code>int64 long_val = 1;</code>
       * @param value The longVal to set.
       * @return This builder for chaining.
       */
      public Builder setLongVal(long value) {
        copyOnWrite();
        instance.setLongVal(value);
        return this;
      }
      /**
       * <code>int64 long_val = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearLongVal() {
        copyOnWrite();
        instance.clearLongVal();
        return this;
      }

      /**
       * <code>double double_val = 2;</code>
       * @return Whether the doubleVal field is set.
       */
      @java.lang.Override
      public boolean hasDoubleVal() {
        return instance.hasDoubleVal();
      }
      /**
       * <code>double double_val = 2;</code>
       * @return The doubleVal.
       */
      @java.lang.Override
      public double getDoubleVal() {
        return instance.getDoubleVal();
      }
      /**
       * <code>double double_val = 2;</code>
       * @param value The doubleVal to set.
       * @return This builder for chaining.
       */
      public Builder setDoubleVal(double value) {
        copyOnWrite();
        instance.setDoubleVal(value);
        return this;
      }
      /**
       * <code>double double_val = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearDoubleVal() {
        copyOnWrite();
        instance.clearDoubleVal();
        return this;
      }

      /**
       * <code>string string_val = 3;</code>
       * @return Whether the stringVal field is set.
       */
      @java.lang.Override
      public boolean hasStringVal() {
        return instance.hasStringVal();
      }
      /**
       * <code>string string_val = 3;</code>
       * @return The stringVal.
       */
      @java.lang.Override
      public java.lang.String getStringVal() {
        return instance.getStringVal();
      }
      /**
       * <code>string string_val = 3;</code>
       * @return The bytes for stringVal.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getStringValBytes() {
        return instance.getStringValBytes();
      }
      /**
       * <code>string string_val = 3;</code>
       * @param value The stringVal to set.
       * @return This builder for chaining.
       */
      public Builder setStringVal(
          java.lang.String value) {
        copyOnWrite();
        instance.setStringVal(value);
        return this;
      }
      /**
       * <code>string string_val = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearStringVal() {
        copyOnWrite();
        instance.clearStringVal();
        return this;
      }
      /**
       * <code>string string_val = 3;</code>
       * @param value The bytes for stringVal to set.
       * @return This builder for chaining.
       */
      public Builder setStringValBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setStringValBytes(value);
        return this;
      }

      /**
       * <code>string enum_val = 4;</code>
       * @return Whether the enumVal field is set.
       */
      @java.lang.Override
      public boolean hasEnumVal() {
        return instance.hasEnumVal();
      }
      /**
       * <code>string enum_val = 4;</code>
       * @return The enumVal.
       */
      @java.lang.Override
      public java.lang.String getEnumVal() {
        return instance.getEnumVal();
      }
      /**
       * <code>string enum_val = 4;</code>
       * @return The bytes for enumVal.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getEnumValBytes() {
        return instance.getEnumValBytes();
      }
      /**
       * <code>string enum_val = 4;</code>
       * @param value The enumVal to set.
       * @return This builder for chaining.
       */
      public Builder setEnumVal(
          java.lang.String value) {
        copyOnWrite();
        instance.setEnumVal(value);
        return this;
      }
      /**
       * <code>string enum_val = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearEnumVal() {
        copyOnWrite();
        instance.clearEnumVal();
        return this;
      }
      /**
       * <code>string enum_val = 4;</code>
       * @param value The bytes for enumVal to set.
       * @return This builder for chaining.
       */
      public Builder setEnumValBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setEnumValBytes(value);
        return this;
      }

      /**
       * <code>bool boolean_val = 5;</code>
       * @return Whether the booleanVal field is set.
       */
      @java.lang.Override
      public boolean hasBooleanVal() {
        return instance.hasBooleanVal();
      }
      /**
       * <code>bool boolean_val = 5;</code>
       * @return The booleanVal.
       */
      @java.lang.Override
      public boolean getBooleanVal() {
        return instance.getBooleanVal();
      }
      /**
       * <code>bool boolean_val = 5;</code>
       * @param value The booleanVal to set.
       * @return This builder for chaining.
       */
      public Builder setBooleanVal(boolean value) {
        copyOnWrite();
        instance.setBooleanVal(value);
        return this;
      }
      /**
       * <code>bool boolean_val = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearBooleanVal() {
        copyOnWrite();
        instance.clearBooleanVal();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.health.platform.client.proto.Value)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.health.platform.client.proto.DataProto.Value();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "value_",
              "valueCase_",
              "bitField0_",
            };
            java.lang.String info =
                "\u0001\u0005\u0001\u0001\u0001\u0005\u0005\u0000\u0000\u0000\u0001\u1035\u0000\u0002" +
                "\u1033\u0000\u0003\u103b\u0000\u0004\u103b\u0000\u0005\u103a\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.health.platform.client.proto.DataProto.Value> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.health.platform.client.proto.DataProto.Value.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.health.platform.client.proto.DataProto.Value>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.health.platform.client.proto.Value)
    private static final androidx.health.platform.client.proto.DataProto.Value DEFAULT_INSTANCE;
    static {
      Value defaultInstance = new Value();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        Value.class, defaultInstance);
    }

    public static androidx.health.platform.client.proto.DataProto.Value getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<Value> PARSER;

    public static com.google.protobuf.Parser<Value> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface DeviceOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.health.platform.client.proto.Device)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>optional string identifier = 1;</code>
     * @return Whether the identifier field is set.
     */
    boolean hasIdentifier();
    /**
     * <code>optional string identifier = 1;</code>
     * @return The identifier.
     */
    java.lang.String getIdentifier();
    /**
     * <code>optional string identifier = 1;</code>
     * @return The bytes for identifier.
     */
    com.google.protobuf.ByteString
        getIdentifierBytes();

    /**
     * <code>optional string manufacturer = 2;</code>
     * @return Whether the manufacturer field is set.
     */
    boolean hasManufacturer();
    /**
     * <code>optional string manufacturer = 2;</code>
     * @return The manufacturer.
     */
    java.lang.String getManufacturer();
    /**
     * <code>optional string manufacturer = 2;</code>
     * @return The bytes for manufacturer.
     */
    com.google.protobuf.ByteString
        getManufacturerBytes();

    /**
     * <code>optional string model = 3;</code>
     * @return Whether the model field is set.
     */
    boolean hasModel();
    /**
     * <code>optional string model = 3;</code>
     * @return The model.
     */
    java.lang.String getModel();
    /**
     * <code>optional string model = 3;</code>
     * @return The bytes for model.
     */
    com.google.protobuf.ByteString
        getModelBytes();

    /**
     * <code>optional string type = 4;</code>
     * @return Whether the type field is set.
     */
    boolean hasType();
    /**
     * <code>optional string type = 4;</code>
     * @return The type.
     */
    java.lang.String getType();
    /**
     * <code>optional string type = 4;</code>
     * @return The bytes for type.
     */
    com.google.protobuf.ByteString
        getTypeBytes();
  }
  /**
   * Protobuf type {@code androidx.health.platform.client.proto.Device}
   */
  public  static final class Device extends
      com.google.protobuf.GeneratedMessageLite<
          Device, Device.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.health.platform.client.proto.Device)
      DeviceOrBuilder {
    private Device() {
      identifier_ = "";
      manufacturer_ = "";
      model_ = "";
      type_ = "";
    }
    private int bitField0_;
    public static final int IDENTIFIER_FIELD_NUMBER = 1;
    private java.lang.String identifier_;
    /**
     * <code>optional string identifier = 1;</code>
     * @return Whether the identifier field is set.
     */
    @java.lang.Override
    public boolean hasIdentifier() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional string identifier = 1;</code>
     * @return The identifier.
     */
    @java.lang.Override
    public java.lang.String getIdentifier() {
      return identifier_;
    }
    /**
     * <code>optional string identifier = 1;</code>
     * @return The bytes for identifier.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getIdentifierBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(identifier_);
    }
    /**
     * <code>optional string identifier = 1;</code>
     * @param value The identifier to set.
     */
    private void setIdentifier(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  bitField0_ |= 0x00000001;
      identifier_ = value;
    }
    /**
     * <code>optional string identifier = 1;</code>
     */
    private void clearIdentifier() {
      bitField0_ = (bitField0_ & ~0x00000001);
      identifier_ = getDefaultInstance().getIdentifier();
    }
    /**
     * <code>optional string identifier = 1;</code>
     * @param value The bytes for identifier to set.
     */
    private void setIdentifierBytes(
        com.google.protobuf.ByteString value) {
      identifier_ = value.toStringUtf8();
      bitField0_ |= 0x00000001;
    }

    public static final int MANUFACTURER_FIELD_NUMBER = 2;
    private java.lang.String manufacturer_;
    /**
     * <code>optional string manufacturer = 2;</code>
     * @return Whether the manufacturer field is set.
     */
    @java.lang.Override
    public boolean hasManufacturer() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional string manufacturer = 2;</code>
     * @return The manufacturer.
     */
    @java.lang.Override
    public java.lang.String getManufacturer() {
      return manufacturer_;
    }
    /**
     * <code>optional string manufacturer = 2;</code>
     * @return The bytes for manufacturer.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getManufacturerBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(manufacturer_);
    }
    /**
     * <code>optional string manufacturer = 2;</code>
     * @param value The manufacturer to set.
     */
    private void setManufacturer(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  bitField0_ |= 0x00000002;
      manufacturer_ = value;
    }
    /**
     * <code>optional string manufacturer = 2;</code>
     */
    private void clearManufacturer() {
      bitField0_ = (bitField0_ & ~0x00000002);
      manufacturer_ = getDefaultInstance().getManufacturer();
    }
    /**
     * <code>optional string manufacturer = 2;</code>
     * @param value The bytes for manufacturer to set.
     */
    private void setManufacturerBytes(
        com.google.protobuf.ByteString value) {
      manufacturer_ = value.toStringUtf8();
      bitField0_ |= 0x00000002;
    }

    public static final int MODEL_FIELD_NUMBER = 3;
    private java.lang.String model_;
    /**
     * <code>optional string model = 3;</code>
     * @return Whether the model field is set.
     */
    @java.lang.Override
    public boolean hasModel() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional string model = 3;</code>
     * @return The model.
     */
    @java.lang.Override
    public java.lang.String getModel() {
      return model_;
    }
    /**
     * <code>optional string model = 3;</code>
     * @return The bytes for model.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getModelBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(model_);
    }
    /**
     * <code>optional string model = 3;</code>
     * @param value The model to set.
     */
    private void setModel(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  bitField0_ |= 0x00000004;
      model_ = value;
    }
    /**
     * <code>optional string model = 3;</code>
     */
    private void clearModel() {
      bitField0_ = (bitField0_ & ~0x00000004);
      model_ = getDefaultInstance().getModel();
    }
    /**
     * <code>optional string model = 3;</code>
     * @param value The bytes for model to set.
     */
    private void setModelBytes(
        com.google.protobuf.ByteString value) {
      model_ = value.toStringUtf8();
      bitField0_ |= 0x00000004;
    }

    public static final int TYPE_FIELD_NUMBER = 4;
    private java.lang.String type_;
    /**
     * <code>optional string type = 4;</code>
     * @return Whether the type field is set.
     */
    @java.lang.Override
    public boolean hasType() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional string type = 4;</code>
     * @return The type.
     */
    @java.lang.Override
    public java.lang.String getType() {
      return type_;
    }
    /**
     * <code>optional string type = 4;</code>
     * @return The bytes for type.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTypeBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(type_);
    }
    /**
     * <code>optional string type = 4;</code>
     * @param value The type to set.
     */
    private void setType(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  bitField0_ |= 0x00000008;
      type_ = value;
    }
    /**
     * <code>optional string type = 4;</code>
     */
    private void clearType() {
      bitField0_ = (bitField0_ & ~0x00000008);
      type_ = getDefaultInstance().getType();
    }
    /**
     * <code>optional string type = 4;</code>
     * @param value The bytes for type to set.
     */
    private void setTypeBytes(
        com.google.protobuf.ByteString value) {
      type_ = value.toStringUtf8();
      bitField0_ |= 0x00000008;
    }

    public static androidx.health.platform.client.proto.DataProto.Device parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.health.platform.client.proto.DataProto.Device parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.Device parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.health.platform.client.proto.DataProto.Device parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.Device parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.health.platform.client.proto.DataProto.Device parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.Device parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.health.platform.client.proto.DataProto.Device parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.Device parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.health.platform.client.proto.DataProto.Device parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.Device parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.health.platform.client.proto.DataProto.Device parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.health.platform.client.proto.DataProto.Device prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code androidx.health.platform.client.proto.Device}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.health.platform.client.proto.DataProto.Device, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.health.platform.client.proto.Device)
        androidx.health.platform.client.proto.DataProto.DeviceOrBuilder {
      // Construct using androidx.health.platform.client.proto.DataProto.Device.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>optional string identifier = 1;</code>
       * @return Whether the identifier field is set.
       */
      @java.lang.Override
      public boolean hasIdentifier() {
        return instance.hasIdentifier();
      }
      /**
       * <code>optional string identifier = 1;</code>
       * @return The identifier.
       */
      @java.lang.Override
      public java.lang.String getIdentifier() {
        return instance.getIdentifier();
      }
      /**
       * <code>optional string identifier = 1;</code>
       * @return The bytes for identifier.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getIdentifierBytes() {
        return instance.getIdentifierBytes();
      }
      /**
       * <code>optional string identifier = 1;</code>
       * @param value The identifier to set.
       * @return This builder for chaining.
       */
      public Builder setIdentifier(
          java.lang.String value) {
        copyOnWrite();
        instance.setIdentifier(value);
        return this;
      }
      /**
       * <code>optional string identifier = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearIdentifier() {
        copyOnWrite();
        instance.clearIdentifier();
        return this;
      }
      /**
       * <code>optional string identifier = 1;</code>
       * @param value The bytes for identifier to set.
       * @return This builder for chaining.
       */
      public Builder setIdentifierBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setIdentifierBytes(value);
        return this;
      }

      /**
       * <code>optional string manufacturer = 2;</code>
       * @return Whether the manufacturer field is set.
       */
      @java.lang.Override
      public boolean hasManufacturer() {
        return instance.hasManufacturer();
      }
      /**
       * <code>optional string manufacturer = 2;</code>
       * @return The manufacturer.
       */
      @java.lang.Override
      public java.lang.String getManufacturer() {
        return instance.getManufacturer();
      }
      /**
       * <code>optional string manufacturer = 2;</code>
       * @return The bytes for manufacturer.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getManufacturerBytes() {
        return instance.getManufacturerBytes();
      }
      /**
       * <code>optional string manufacturer = 2;</code>
       * @param value The manufacturer to set.
       * @return This builder for chaining.
       */
      public Builder setManufacturer(
          java.lang.String value) {
        copyOnWrite();
        instance.setManufacturer(value);
        return this;
      }
      /**
       * <code>optional string manufacturer = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearManufacturer() {
        copyOnWrite();
        instance.clearManufacturer();
        return this;
      }
      /**
       * <code>optional string manufacturer = 2;</code>
       * @param value The bytes for manufacturer to set.
       * @return This builder for chaining.
       */
      public Builder setManufacturerBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setManufacturerBytes(value);
        return this;
      }

      /**
       * <code>optional string model = 3;</code>
       * @return Whether the model field is set.
       */
      @java.lang.Override
      public boolean hasModel() {
        return instance.hasModel();
      }
      /**
       * <code>optional string model = 3;</code>
       * @return The model.
       */
      @java.lang.Override
      public java.lang.String getModel() {
        return instance.getModel();
      }
      /**
       * <code>optional string model = 3;</code>
       * @return The bytes for model.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getModelBytes() {
        return instance.getModelBytes();
      }
      /**
       * <code>optional string model = 3;</code>
       * @param value The model to set.
       * @return This builder for chaining.
       */
      public Builder setModel(
          java.lang.String value) {
        copyOnWrite();
        instance.setModel(value);
        return this;
      }
      /**
       * <code>optional string model = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearModel() {
        copyOnWrite();
        instance.clearModel();
        return this;
      }
      /**
       * <code>optional string model = 3;</code>
       * @param value The bytes for model to set.
       * @return This builder for chaining.
       */
      public Builder setModelBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setModelBytes(value);
        return this;
      }

      /**
       * <code>optional string type = 4;</code>
       * @return Whether the type field is set.
       */
      @java.lang.Override
      public boolean hasType() {
        return instance.hasType();
      }
      /**
       * <code>optional string type = 4;</code>
       * @return The type.
       */
      @java.lang.Override
      public java.lang.String getType() {
        return instance.getType();
      }
      /**
       * <code>optional string type = 4;</code>
       * @return The bytes for type.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getTypeBytes() {
        return instance.getTypeBytes();
      }
      /**
       * <code>optional string type = 4;</code>
       * @param value The type to set.
       * @return This builder for chaining.
       */
      public Builder setType(
          java.lang.String value) {
        copyOnWrite();
        instance.setType(value);
        return this;
      }
      /**
       * <code>optional string type = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearType() {
        copyOnWrite();
        instance.clearType();
        return this;
      }
      /**
       * <code>optional string type = 4;</code>
       * @param value The bytes for type to set.
       * @return This builder for chaining.
       */
      public Builder setTypeBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setTypeBytes(value);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.health.platform.client.proto.Device)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.health.platform.client.proto.DataProto.Device();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "identifier_",
              "manufacturer_",
              "model_",
              "type_",
            };
            java.lang.String info =
                "\u0001\u0004\u0000\u0001\u0001\u0004\u0004\u0000\u0000\u0000\u0001\u1008\u0000\u0002" +
                "\u1008\u0001\u0003\u1008\u0002\u0004\u1008\u0003";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.health.platform.client.proto.DataProto.Device> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.health.platform.client.proto.DataProto.Device.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.health.platform.client.proto.DataProto.Device>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.health.platform.client.proto.Device)
    private static final androidx.health.platform.client.proto.DataProto.Device DEFAULT_INSTANCE;
    static {
      Device defaultInstance = new Device();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        Device.class, defaultInstance);
    }

    public static androidx.health.platform.client.proto.DataProto.Device getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<Device> PARSER;

    public static com.google.protobuf.Parser<Device> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface DataOriginOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.health.platform.client.proto.DataOrigin)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>optional string application_id = 1;</code>
     * @return Whether the applicationId field is set.
     */
    boolean hasApplicationId();
    /**
     * <code>optional string application_id = 1;</code>
     * @return The applicationId.
     */
    java.lang.String getApplicationId();
    /**
     * <code>optional string application_id = 1;</code>
     * @return The bytes for applicationId.
     */
    com.google.protobuf.ByteString
        getApplicationIdBytes();
  }
  /**
   * Protobuf type {@code androidx.health.platform.client.proto.DataOrigin}
   */
  public  static final class DataOrigin extends
      com.google.protobuf.GeneratedMessageLite<
          DataOrigin, DataOrigin.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.health.platform.client.proto.DataOrigin)
      DataOriginOrBuilder {
    private DataOrigin() {
      applicationId_ = "";
    }
    private int bitField0_;
    public static final int APPLICATION_ID_FIELD_NUMBER = 1;
    private java.lang.String applicationId_;
    /**
     * <code>optional string application_id = 1;</code>
     * @return Whether the applicationId field is set.
     */
    @java.lang.Override
    public boolean hasApplicationId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional string application_id = 1;</code>
     * @return The applicationId.
     */
    @java.lang.Override
    public java.lang.String getApplicationId() {
      return applicationId_;
    }
    /**
     * <code>optional string application_id = 1;</code>
     * @return The bytes for applicationId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getApplicationIdBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(applicationId_);
    }
    /**
     * <code>optional string application_id = 1;</code>
     * @param value The applicationId to set.
     */
    private void setApplicationId(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  bitField0_ |= 0x00000001;
      applicationId_ = value;
    }
    /**
     * <code>optional string application_id = 1;</code>
     */
    private void clearApplicationId() {
      bitField0_ = (bitField0_ & ~0x00000001);
      applicationId_ = getDefaultInstance().getApplicationId();
    }
    /**
     * <code>optional string application_id = 1;</code>
     * @param value The bytes for applicationId to set.
     */
    private void setApplicationIdBytes(
        com.google.protobuf.ByteString value) {
      applicationId_ = value.toStringUtf8();
      bitField0_ |= 0x00000001;
    }

    public static androidx.health.platform.client.proto.DataProto.DataOrigin parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.health.platform.client.proto.DataProto.DataOrigin parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.DataOrigin parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.health.platform.client.proto.DataProto.DataOrigin parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.DataOrigin parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.health.platform.client.proto.DataProto.DataOrigin parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.DataOrigin parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.health.platform.client.proto.DataProto.DataOrigin parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.DataOrigin parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.health.platform.client.proto.DataProto.DataOrigin parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.DataOrigin parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.health.platform.client.proto.DataProto.DataOrigin parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.health.platform.client.proto.DataProto.DataOrigin prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code androidx.health.platform.client.proto.DataOrigin}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.health.platform.client.proto.DataProto.DataOrigin, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.health.platform.client.proto.DataOrigin)
        androidx.health.platform.client.proto.DataProto.DataOriginOrBuilder {
      // Construct using androidx.health.platform.client.proto.DataProto.DataOrigin.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>optional string application_id = 1;</code>
       * @return Whether the applicationId field is set.
       */
      @java.lang.Override
      public boolean hasApplicationId() {
        return instance.hasApplicationId();
      }
      /**
       * <code>optional string application_id = 1;</code>
       * @return The applicationId.
       */
      @java.lang.Override
      public java.lang.String getApplicationId() {
        return instance.getApplicationId();
      }
      /**
       * <code>optional string application_id = 1;</code>
       * @return The bytes for applicationId.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getApplicationIdBytes() {
        return instance.getApplicationIdBytes();
      }
      /**
       * <code>optional string application_id = 1;</code>
       * @param value The applicationId to set.
       * @return This builder for chaining.
       */
      public Builder setApplicationId(
          java.lang.String value) {
        copyOnWrite();
        instance.setApplicationId(value);
        return this;
      }
      /**
       * <code>optional string application_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearApplicationId() {
        copyOnWrite();
        instance.clearApplicationId();
        return this;
      }
      /**
       * <code>optional string application_id = 1;</code>
       * @param value The bytes for applicationId to set.
       * @return This builder for chaining.
       */
      public Builder setApplicationIdBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setApplicationIdBytes(value);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.health.platform.client.proto.DataOrigin)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.health.platform.client.proto.DataProto.DataOrigin();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "applicationId_",
            };
            java.lang.String info =
                "\u0001\u0001\u0000\u0001\u0001\u0001\u0001\u0000\u0000\u0000\u0001\u1008\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.health.platform.client.proto.DataProto.DataOrigin> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.health.platform.client.proto.DataProto.DataOrigin.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.health.platform.client.proto.DataProto.DataOrigin>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.health.platform.client.proto.DataOrigin)
    private static final androidx.health.platform.client.proto.DataProto.DataOrigin DEFAULT_INSTANCE;
    static {
      DataOrigin defaultInstance = new DataOrigin();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        DataOrigin.class, defaultInstance);
    }

    public static androidx.health.platform.client.proto.DataProto.DataOrigin getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<DataOrigin> PARSER;

    public static com.google.protobuf.Parser<DataOrigin> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface SeriesValueOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.health.platform.client.proto.SeriesValue)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
     */
    int getValuesCount();
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
     */
    boolean containsValues(
        java.lang.String key);
    /**
     * Use {@link #getValuesMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value>
    getValues();
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
     */
    java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value>
    getValuesMap();
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
     */

    /* nullable */
androidx.health.platform.client.proto.DataProto.Value getValuesOrDefault(
        java.lang.String key,
        /* nullable */
androidx.health.platform.client.proto.DataProto.Value defaultValue);
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
     */

    androidx.health.platform.client.proto.DataProto.Value getValuesOrThrow(
        java.lang.String key);

    /**
     * <code>optional int64 instant_time_millis = 2;</code>
     * @return Whether the instantTimeMillis field is set.
     */
    boolean hasInstantTimeMillis();
    /**
     * <code>optional int64 instant_time_millis = 2;</code>
     * @return The instantTimeMillis.
     */
    long getInstantTimeMillis();
  }
  /**
   * Protobuf type {@code androidx.health.platform.client.proto.SeriesValue}
   */
  public  static final class SeriesValue extends
      com.google.protobuf.GeneratedMessageLite<
          SeriesValue, SeriesValue.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.health.platform.client.proto.SeriesValue)
      SeriesValueOrBuilder {
    private SeriesValue() {
    }
    private int bitField0_;
    public static final int VALUES_FIELD_NUMBER = 1;
    private static final class ValuesDefaultEntryHolder {
      static final com.google.protobuf.MapEntryLite<
          java.lang.String, androidx.health.platform.client.proto.DataProto.Value> defaultEntry =
              com.google.protobuf.MapEntryLite
              .<java.lang.String, androidx.health.platform.client.proto.DataProto.Value>newDefaultInstance(
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.MESSAGE,
                  androidx.health.platform.client.proto.DataProto.Value.getDefaultInstance());
    }
    private com.google.protobuf.MapFieldLite<
        java.lang.String, androidx.health.platform.client.proto.DataProto.Value> values_ =
            com.google.protobuf.MapFieldLite.emptyMapField();
    private com.google.protobuf.MapFieldLite<java.lang.String, androidx.health.platform.client.proto.DataProto.Value>
    internalGetValues() {
      return values_;
    }
    private com.google.protobuf.MapFieldLite<java.lang.String, androidx.health.platform.client.proto.DataProto.Value>
    internalGetMutableValues() {
      if (!values_.isMutable()) {
        values_ = values_.mutableCopy();
      }
      return values_;
    }
    @java.lang.Override

    public int getValuesCount() {
      return internalGetValues().size();
    }
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
     */
    @java.lang.Override

    public boolean containsValues(
        java.lang.String key) {
      java.lang.Class<?> keyClass = key.getClass();
      return internalGetValues().containsKey(key);
    }
    /**
     * Use {@link #getValuesMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value> getValues() {
      return getValuesMap();
    }
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
     */
    @java.lang.Override

    public java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value> getValuesMap() {
      return java.util.Collections.unmodifiableMap(
          internalGetValues());
    }
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
     */
    @java.lang.Override

    public /* nullable */
androidx.health.platform.client.proto.DataProto.Value getValuesOrDefault(
        java.lang.String key,
        /* nullable */
androidx.health.platform.client.proto.DataProto.Value defaultValue) {
      java.lang.Class<?> keyClass = key.getClass();
      java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value> map =
          internalGetValues();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
     */
    @java.lang.Override

    public androidx.health.platform.client.proto.DataProto.Value getValuesOrThrow(
        java.lang.String key) {
      java.lang.Class<?> keyClass = key.getClass();
      java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value> map =
          internalGetValues();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
     */
    private java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value>
    getMutableValuesMap() {
      return internalGetMutableValues();
    }

    public static final int INSTANT_TIME_MILLIS_FIELD_NUMBER = 2;
    private long instantTimeMillis_;
    /**
     * <code>optional int64 instant_time_millis = 2;</code>
     * @return Whether the instantTimeMillis field is set.
     */
    @java.lang.Override
    public boolean hasInstantTimeMillis() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional int64 instant_time_millis = 2;</code>
     * @return The instantTimeMillis.
     */
    @java.lang.Override
    public long getInstantTimeMillis() {
      return instantTimeMillis_;
    }
    /**
     * <code>optional int64 instant_time_millis = 2;</code>
     * @param value The instantTimeMillis to set.
     */
    private void setInstantTimeMillis(long value) {
      bitField0_ |= 0x00000001;
      instantTimeMillis_ = value;
    }
    /**
     * <code>optional int64 instant_time_millis = 2;</code>
     */
    private void clearInstantTimeMillis() {
      bitField0_ = (bitField0_ & ~0x00000001);
      instantTimeMillis_ = 0L;
    }

    public static androidx.health.platform.client.proto.DataProto.SeriesValue parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.health.platform.client.proto.DataProto.SeriesValue parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.SeriesValue parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.health.platform.client.proto.DataProto.SeriesValue parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.SeriesValue parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.health.platform.client.proto.DataProto.SeriesValue parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.SeriesValue parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.health.platform.client.proto.DataProto.SeriesValue parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.SeriesValue parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.health.platform.client.proto.DataProto.SeriesValue parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.SeriesValue parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.health.platform.client.proto.DataProto.SeriesValue parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.health.platform.client.proto.DataProto.SeriesValue prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code androidx.health.platform.client.proto.SeriesValue}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.health.platform.client.proto.DataProto.SeriesValue, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.health.platform.client.proto.SeriesValue)
        androidx.health.platform.client.proto.DataProto.SeriesValueOrBuilder {
      // Construct using androidx.health.platform.client.proto.DataProto.SeriesValue.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      @java.lang.Override

      public int getValuesCount() {
        return instance.getValuesMap().size();
      }
      /**
       * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
       */
      @java.lang.Override

      public boolean containsValues(
          java.lang.String key) {
        java.lang.Class<?> keyClass = key.getClass();
        return instance.getValuesMap().containsKey(key);
      }

      public Builder clearValues() {
        copyOnWrite();
        instance.getMutableValuesMap().clear();
        return this;
      }
      /**
       * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
       */

      public Builder removeValues(
          java.lang.String key) {
        java.lang.Class<?> keyClass = key.getClass();
        copyOnWrite();
        instance.getMutableValuesMap().remove(key);
        return this;
      }
      /**
       * Use {@link #getValuesMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value> getValues() {
        return getValuesMap();
      }
      /**
       * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
       */
      @java.lang.Override
      public java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value> getValuesMap() {
        return java.util.Collections.unmodifiableMap(
            instance.getValuesMap());
      }
      /**
       * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
       */
      @java.lang.Override

      public /* nullable */
androidx.health.platform.client.proto.DataProto.Value getValuesOrDefault(
          java.lang.String key,
          /* nullable */
androidx.health.platform.client.proto.DataProto.Value defaultValue) {
        java.lang.Class<?> keyClass = key.getClass();
        java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value> map =
            instance.getValuesMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
       */
      @java.lang.Override

      public androidx.health.platform.client.proto.DataProto.Value getValuesOrThrow(
          java.lang.String key) {
        java.lang.Class<?> keyClass = key.getClass();
        java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value> map =
            instance.getValuesMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }
      /**
       * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
       */
      public Builder putValues(
          java.lang.String key,
          androidx.health.platform.client.proto.DataProto.Value value) {
        java.lang.Class<?> keyClass = key.getClass();
        java.lang.Class<?> valueClass = value.getClass();
        copyOnWrite();
        instance.getMutableValuesMap().put(key, value);
        return this;
      }
      /**
       * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
       */
      public Builder putAllValues(
          java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value> values) {
        copyOnWrite();
        instance.getMutableValuesMap().putAll(values);
        return this;
      }

      /**
       * <code>optional int64 instant_time_millis = 2;</code>
       * @return Whether the instantTimeMillis field is set.
       */
      @java.lang.Override
      public boolean hasInstantTimeMillis() {
        return instance.hasInstantTimeMillis();
      }
      /**
       * <code>optional int64 instant_time_millis = 2;</code>
       * @return The instantTimeMillis.
       */
      @java.lang.Override
      public long getInstantTimeMillis() {
        return instance.getInstantTimeMillis();
      }
      /**
       * <code>optional int64 instant_time_millis = 2;</code>
       * @param value The instantTimeMillis to set.
       * @return This builder for chaining.
       */
      public Builder setInstantTimeMillis(long value) {
        copyOnWrite();
        instance.setInstantTimeMillis(value);
        return this;
      }
      /**
       * <code>optional int64 instant_time_millis = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearInstantTimeMillis() {
        copyOnWrite();
        instance.clearInstantTimeMillis();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.health.platform.client.proto.SeriesValue)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.health.platform.client.proto.DataProto.SeriesValue();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "values_",
              ValuesDefaultEntryHolder.defaultEntry,
              "instantTimeMillis_",
            };
            java.lang.String info =
                "\u0001\u0002\u0000\u0001\u0001\u0002\u0002\u0001\u0000\u0000\u00012\u0002\u1002\u0000" +
                "";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.health.platform.client.proto.DataProto.SeriesValue> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.health.platform.client.proto.DataProto.SeriesValue.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.health.platform.client.proto.DataProto.SeriesValue>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.health.platform.client.proto.SeriesValue)
    private static final androidx.health.platform.client.proto.DataProto.SeriesValue DEFAULT_INSTANCE;
    static {
      SeriesValue defaultInstance = new SeriesValue();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        SeriesValue.class, defaultInstance);
    }

    public static androidx.health.platform.client.proto.DataProto.SeriesValue getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<SeriesValue> PARSER;

    public static com.google.protobuf.Parser<SeriesValue> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface SubTypeDataValueOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.health.platform.client.proto.SubTypeDataValue)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
     */
    int getValuesCount();
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
     */
    boolean containsValues(
        java.lang.String key);
    /**
     * Use {@link #getValuesMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value>
    getValues();
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
     */
    java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value>
    getValuesMap();
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
     */

    /* nullable */
androidx.health.platform.client.proto.DataProto.Value getValuesOrDefault(
        java.lang.String key,
        /* nullable */
androidx.health.platform.client.proto.DataProto.Value defaultValue);
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
     */

    androidx.health.platform.client.proto.DataProto.Value getValuesOrThrow(
        java.lang.String key);

    /**
     * <code>optional int64 start_time_millis = 2;</code>
     * @return Whether the startTimeMillis field is set.
     */
    boolean hasStartTimeMillis();
    /**
     * <code>optional int64 start_time_millis = 2;</code>
     * @return The startTimeMillis.
     */
    long getStartTimeMillis();

    /**
     * <code>optional int64 end_time_millis = 3;</code>
     * @return Whether the endTimeMillis field is set.
     */
    boolean hasEndTimeMillis();
    /**
     * <code>optional int64 end_time_millis = 3;</code>
     * @return The endTimeMillis.
     */
    long getEndTimeMillis();
  }
  /**
   * Protobuf type {@code androidx.health.platform.client.proto.SubTypeDataValue}
   */
  public  static final class SubTypeDataValue extends
      com.google.protobuf.GeneratedMessageLite<
          SubTypeDataValue, SubTypeDataValue.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.health.platform.client.proto.SubTypeDataValue)
      SubTypeDataValueOrBuilder {
    private SubTypeDataValue() {
    }
    private int bitField0_;
    public static final int VALUES_FIELD_NUMBER = 1;
    private static final class ValuesDefaultEntryHolder {
      static final com.google.protobuf.MapEntryLite<
          java.lang.String, androidx.health.platform.client.proto.DataProto.Value> defaultEntry =
              com.google.protobuf.MapEntryLite
              .<java.lang.String, androidx.health.platform.client.proto.DataProto.Value>newDefaultInstance(
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.MESSAGE,
                  androidx.health.platform.client.proto.DataProto.Value.getDefaultInstance());
    }
    private com.google.protobuf.MapFieldLite<
        java.lang.String, androidx.health.platform.client.proto.DataProto.Value> values_ =
            com.google.protobuf.MapFieldLite.emptyMapField();
    private com.google.protobuf.MapFieldLite<java.lang.String, androidx.health.platform.client.proto.DataProto.Value>
    internalGetValues() {
      return values_;
    }
    private com.google.protobuf.MapFieldLite<java.lang.String, androidx.health.platform.client.proto.DataProto.Value>
    internalGetMutableValues() {
      if (!values_.isMutable()) {
        values_ = values_.mutableCopy();
      }
      return values_;
    }
    @java.lang.Override

    public int getValuesCount() {
      return internalGetValues().size();
    }
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
     */
    @java.lang.Override

    public boolean containsValues(
        java.lang.String key) {
      java.lang.Class<?> keyClass = key.getClass();
      return internalGetValues().containsKey(key);
    }
    /**
     * Use {@link #getValuesMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value> getValues() {
      return getValuesMap();
    }
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
     */
    @java.lang.Override

    public java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value> getValuesMap() {
      return java.util.Collections.unmodifiableMap(
          internalGetValues());
    }
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
     */
    @java.lang.Override

    public /* nullable */
androidx.health.platform.client.proto.DataProto.Value getValuesOrDefault(
        java.lang.String key,
        /* nullable */
androidx.health.platform.client.proto.DataProto.Value defaultValue) {
      java.lang.Class<?> keyClass = key.getClass();
      java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value> map =
          internalGetValues();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
     */
    @java.lang.Override

    public androidx.health.platform.client.proto.DataProto.Value getValuesOrThrow(
        java.lang.String key) {
      java.lang.Class<?> keyClass = key.getClass();
      java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value> map =
          internalGetValues();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
     */
    private java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value>
    getMutableValuesMap() {
      return internalGetMutableValues();
    }

    public static final int START_TIME_MILLIS_FIELD_NUMBER = 2;
    private long startTimeMillis_;
    /**
     * <code>optional int64 start_time_millis = 2;</code>
     * @return Whether the startTimeMillis field is set.
     */
    @java.lang.Override
    public boolean hasStartTimeMillis() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional int64 start_time_millis = 2;</code>
     * @return The startTimeMillis.
     */
    @java.lang.Override
    public long getStartTimeMillis() {
      return startTimeMillis_;
    }
    /**
     * <code>optional int64 start_time_millis = 2;</code>
     * @param value The startTimeMillis to set.
     */
    private void setStartTimeMillis(long value) {
      bitField0_ |= 0x00000001;
      startTimeMillis_ = value;
    }
    /**
     * <code>optional int64 start_time_millis = 2;</code>
     */
    private void clearStartTimeMillis() {
      bitField0_ = (bitField0_ & ~0x00000001);
      startTimeMillis_ = 0L;
    }

    public static final int END_TIME_MILLIS_FIELD_NUMBER = 3;
    private long endTimeMillis_;
    /**
     * <code>optional int64 end_time_millis = 3;</code>
     * @return Whether the endTimeMillis field is set.
     */
    @java.lang.Override
    public boolean hasEndTimeMillis() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional int64 end_time_millis = 3;</code>
     * @return The endTimeMillis.
     */
    @java.lang.Override
    public long getEndTimeMillis() {
      return endTimeMillis_;
    }
    /**
     * <code>optional int64 end_time_millis = 3;</code>
     * @param value The endTimeMillis to set.
     */
    private void setEndTimeMillis(long value) {
      bitField0_ |= 0x00000002;
      endTimeMillis_ = value;
    }
    /**
     * <code>optional int64 end_time_millis = 3;</code>
     */
    private void clearEndTimeMillis() {
      bitField0_ = (bitField0_ & ~0x00000002);
      endTimeMillis_ = 0L;
    }

    public static androidx.health.platform.client.proto.DataProto.SubTypeDataValue parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.health.platform.client.proto.DataProto.SubTypeDataValue parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.SubTypeDataValue parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.health.platform.client.proto.DataProto.SubTypeDataValue parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.SubTypeDataValue parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.health.platform.client.proto.DataProto.SubTypeDataValue parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.SubTypeDataValue parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.health.platform.client.proto.DataProto.SubTypeDataValue parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.SubTypeDataValue parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.health.platform.client.proto.DataProto.SubTypeDataValue parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.SubTypeDataValue parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.health.platform.client.proto.DataProto.SubTypeDataValue parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.health.platform.client.proto.DataProto.SubTypeDataValue prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code androidx.health.platform.client.proto.SubTypeDataValue}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.health.platform.client.proto.DataProto.SubTypeDataValue, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.health.platform.client.proto.SubTypeDataValue)
        androidx.health.platform.client.proto.DataProto.SubTypeDataValueOrBuilder {
      // Construct using androidx.health.platform.client.proto.DataProto.SubTypeDataValue.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      @java.lang.Override

      public int getValuesCount() {
        return instance.getValuesMap().size();
      }
      /**
       * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
       */
      @java.lang.Override

      public boolean containsValues(
          java.lang.String key) {
        java.lang.Class<?> keyClass = key.getClass();
        return instance.getValuesMap().containsKey(key);
      }

      public Builder clearValues() {
        copyOnWrite();
        instance.getMutableValuesMap().clear();
        return this;
      }
      /**
       * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
       */

      public Builder removeValues(
          java.lang.String key) {
        java.lang.Class<?> keyClass = key.getClass();
        copyOnWrite();
        instance.getMutableValuesMap().remove(key);
        return this;
      }
      /**
       * Use {@link #getValuesMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value> getValues() {
        return getValuesMap();
      }
      /**
       * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
       */
      @java.lang.Override
      public java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value> getValuesMap() {
        return java.util.Collections.unmodifiableMap(
            instance.getValuesMap());
      }
      /**
       * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
       */
      @java.lang.Override

      public /* nullable */
androidx.health.platform.client.proto.DataProto.Value getValuesOrDefault(
          java.lang.String key,
          /* nullable */
androidx.health.platform.client.proto.DataProto.Value defaultValue) {
        java.lang.Class<?> keyClass = key.getClass();
        java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value> map =
            instance.getValuesMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
       */
      @java.lang.Override

      public androidx.health.platform.client.proto.DataProto.Value getValuesOrThrow(
          java.lang.String key) {
        java.lang.Class<?> keyClass = key.getClass();
        java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value> map =
            instance.getValuesMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }
      /**
       * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
       */
      public Builder putValues(
          java.lang.String key,
          androidx.health.platform.client.proto.DataProto.Value value) {
        java.lang.Class<?> keyClass = key.getClass();
        java.lang.Class<?> valueClass = value.getClass();
        copyOnWrite();
        instance.getMutableValuesMap().put(key, value);
        return this;
      }
      /**
       * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
       */
      public Builder putAllValues(
          java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value> values) {
        copyOnWrite();
        instance.getMutableValuesMap().putAll(values);
        return this;
      }

      /**
       * <code>optional int64 start_time_millis = 2;</code>
       * @return Whether the startTimeMillis field is set.
       */
      @java.lang.Override
      public boolean hasStartTimeMillis() {
        return instance.hasStartTimeMillis();
      }
      /**
       * <code>optional int64 start_time_millis = 2;</code>
       * @return The startTimeMillis.
       */
      @java.lang.Override
      public long getStartTimeMillis() {
        return instance.getStartTimeMillis();
      }
      /**
       * <code>optional int64 start_time_millis = 2;</code>
       * @param value The startTimeMillis to set.
       * @return This builder for chaining.
       */
      public Builder setStartTimeMillis(long value) {
        copyOnWrite();
        instance.setStartTimeMillis(value);
        return this;
      }
      /**
       * <code>optional int64 start_time_millis = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearStartTimeMillis() {
        copyOnWrite();
        instance.clearStartTimeMillis();
        return this;
      }

      /**
       * <code>optional int64 end_time_millis = 3;</code>
       * @return Whether the endTimeMillis field is set.
       */
      @java.lang.Override
      public boolean hasEndTimeMillis() {
        return instance.hasEndTimeMillis();
      }
      /**
       * <code>optional int64 end_time_millis = 3;</code>
       * @return The endTimeMillis.
       */
      @java.lang.Override
      public long getEndTimeMillis() {
        return instance.getEndTimeMillis();
      }
      /**
       * <code>optional int64 end_time_millis = 3;</code>
       * @param value The endTimeMillis to set.
       * @return This builder for chaining.
       */
      public Builder setEndTimeMillis(long value) {
        copyOnWrite();
        instance.setEndTimeMillis(value);
        return this;
      }
      /**
       * <code>optional int64 end_time_millis = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearEndTimeMillis() {
        copyOnWrite();
        instance.clearEndTimeMillis();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.health.platform.client.proto.SubTypeDataValue)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.health.platform.client.proto.DataProto.SubTypeDataValue();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "values_",
              ValuesDefaultEntryHolder.defaultEntry,
              "startTimeMillis_",
              "endTimeMillis_",
            };
            java.lang.String info =
                "\u0001\u0003\u0000\u0001\u0001\u0003\u0003\u0001\u0000\u0000\u00012\u0002\u1002\u0000" +
                "\u0003\u1002\u0001";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.health.platform.client.proto.DataProto.SubTypeDataValue> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.health.platform.client.proto.DataProto.SubTypeDataValue.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.health.platform.client.proto.DataProto.SubTypeDataValue>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.health.platform.client.proto.SubTypeDataValue)
    private static final androidx.health.platform.client.proto.DataProto.SubTypeDataValue DEFAULT_INSTANCE;
    static {
      SubTypeDataValue defaultInstance = new SubTypeDataValue();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        SubTypeDataValue.class, defaultInstance);
    }

    public static androidx.health.platform.client.proto.DataProto.SubTypeDataValue getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<SubTypeDataValue> PARSER;

    public static com.google.protobuf.Parser<SubTypeDataValue> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface DataPointOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.health.platform.client.proto.DataPoint)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>optional .androidx.health.platform.client.proto.DataType data_type = 1;</code>
     * @return Whether the dataType field is set.
     */
    boolean hasDataType();
    /**
     * <code>optional .androidx.health.platform.client.proto.DataType data_type = 1;</code>
     * @return The dataType.
     */
    androidx.health.platform.client.proto.DataProto.DataType getDataType();

    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 2;</code>
     */
    int getValuesCount();
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 2;</code>
     */
    boolean containsValues(
        java.lang.String key);
    /**
     * Use {@link #getValuesMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value>
    getValues();
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 2;</code>
     */
    java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value>
    getValuesMap();
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 2;</code>
     */

    /* nullable */
androidx.health.platform.client.proto.DataProto.Value getValuesOrDefault(
        java.lang.String key,
        /* nullable */
androidx.health.platform.client.proto.DataProto.Value defaultValue);
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 2;</code>
     */

    androidx.health.platform.client.proto.DataProto.Value getValuesOrThrow(
        java.lang.String key);

    /**
     * <code>optional string uid = 3;</code>
     * @return Whether the uid field is set.
     */
    boolean hasUid();
    /**
     * <code>optional string uid = 3;</code>
     * @return The uid.
     */
    java.lang.String getUid();
    /**
     * <code>optional string uid = 3;</code>
     * @return The bytes for uid.
     */
    com.google.protobuf.ByteString
        getUidBytes();

    /**
     * <code>optional string origin_series_uid = 4;</code>
     * @return Whether the originSeriesUid field is set.
     */
    boolean hasOriginSeriesUid();
    /**
     * <code>optional string origin_series_uid = 4;</code>
     * @return The originSeriesUid.
     */
    java.lang.String getOriginSeriesUid();
    /**
     * <code>optional string origin_series_uid = 4;</code>
     * @return The bytes for originSeriesUid.
     */
    com.google.protobuf.ByteString
        getOriginSeriesUidBytes();

    /**
     * <code>optional .androidx.health.platform.client.proto.DataOrigin data_origin = 5;</code>
     * @return Whether the dataOrigin field is set.
     */
    boolean hasDataOrigin();
    /**
     * <code>optional .androidx.health.platform.client.proto.DataOrigin data_origin = 5;</code>
     * @return The dataOrigin.
     */
    androidx.health.platform.client.proto.DataProto.DataOrigin getDataOrigin();

    /**
     * <pre>
     * Unset if it is interval or series data, use start_zone_offset_seconds and
     * end_zone_offset_seconds instead.
     * </pre>
     *
     * <code>optional int32 zone_offset_seconds = 6;</code>
     * @return Whether the zoneOffsetSeconds field is set.
     */
    boolean hasZoneOffsetSeconds();
    /**
     * <pre>
     * Unset if it is interval or series data, use start_zone_offset_seconds and
     * end_zone_offset_seconds instead.
     * </pre>
     *
     * <code>optional int32 zone_offset_seconds = 6;</code>
     * @return The zoneOffsetSeconds.
     */
    int getZoneOffsetSeconds();

    /**
     * <code>optional int64 update_time_millis = 7;</code>
     * @return Whether the updateTimeMillis field is set.
     */
    boolean hasUpdateTimeMillis();
    /**
     * <code>optional int64 update_time_millis = 7;</code>
     * @return The updateTimeMillis.
     */
    long getUpdateTimeMillis();

    /**
     * <pre>
     * Unset if interval start/end millis are used.
     * </pre>
     *
     * <code>optional int64 instant_time_millis = 8;</code>
     * @return Whether the instantTimeMillis field is set.
     */
    boolean hasInstantTimeMillis();
    /**
     * <pre>
     * Unset if interval start/end millis are used.
     * </pre>
     *
     * <code>optional int64 instant_time_millis = 8;</code>
     * @return The instantTimeMillis.
     */
    long getInstantTimeMillis();

    /**
     * <code>optional int64 start_time_millis = 9;</code>
     * @return Whether the startTimeMillis field is set.
     */
    boolean hasStartTimeMillis();
    /**
     * <code>optional int64 start_time_millis = 9;</code>
     * @return The startTimeMillis.
     */
    long getStartTimeMillis();

    /**
     * <code>optional int64 end_time_millis = 10;</code>
     * @return Whether the endTimeMillis field is set.
     */
    boolean hasEndTimeMillis();
    /**
     * <code>optional int64 end_time_millis = 10;</code>
     * @return The endTimeMillis.
     */
    long getEndTimeMillis();

    /**
     * <code>optional string client_id = 11;</code>
     * @return Whether the clientId field is set.
     */
    boolean hasClientId();
    /**
     * <code>optional string client_id = 11;</code>
     * @return The clientId.
     */
    java.lang.String getClientId();
    /**
     * <code>optional string client_id = 11;</code>
     * @return The bytes for clientId.
     */
    com.google.protobuf.ByteString
        getClientIdBytes();

    /**
     * <code>optional int64 client_version = 12;</code>
     * @return Whether the clientVersion field is set.
     */
    boolean hasClientVersion();
    /**
     * <code>optional int64 client_version = 12;</code>
     * @return The clientVersion.
     */
    long getClientVersion();

    /**
     * <code>optional .androidx.health.platform.client.proto.Device device = 13;</code>
     * @return Whether the device field is set.
     */
    boolean hasDevice();
    /**
     * <code>optional .androidx.health.platform.client.proto.Device device = 13;</code>
     * @return The device.
     */
    androidx.health.platform.client.proto.DataProto.Device getDevice();

    /**
     * <code>optional string origin_sample_uid = 14;</code>
     * @return Whether the originSampleUid field is set.
     */
    boolean hasOriginSampleUid();
    /**
     * <code>optional string origin_sample_uid = 14;</code>
     * @return The originSampleUid.
     */
    java.lang.String getOriginSampleUid();
    /**
     * <code>optional string origin_sample_uid = 14;</code>
     * @return The bytes for originSampleUid.
     */
    com.google.protobuf.ByteString
        getOriginSampleUidBytes();

    /**
     * <code>repeated .androidx.health.platform.client.proto.SeriesValue series_values = 15;</code>
     */
    java.util.List<androidx.health.platform.client.proto.DataProto.SeriesValue> 
        getSeriesValuesList();
    /**
     * <code>repeated .androidx.health.platform.client.proto.SeriesValue series_values = 15;</code>
     */
    androidx.health.platform.client.proto.DataProto.SeriesValue getSeriesValues(int index);
    /**
     * <code>repeated .androidx.health.platform.client.proto.SeriesValue series_values = 15;</code>
     */
    int getSeriesValuesCount();

    /**
     * <code>optional .androidx.health.platform.client.proto.AggregatedValue min = 16;</code>
     * @return Whether the min field is set.
     */
    boolean hasMin();
    /**
     * <code>optional .androidx.health.platform.client.proto.AggregatedValue min = 16;</code>
     * @return The min.
     */
    androidx.health.platform.client.proto.DataProto.AggregatedValue getMin();

    /**
     * <code>optional .androidx.health.platform.client.proto.AggregatedValue max = 17;</code>
     * @return Whether the max field is set.
     */
    boolean hasMax();
    /**
     * <code>optional .androidx.health.platform.client.proto.AggregatedValue max = 17;</code>
     * @return The max.
     */
    androidx.health.platform.client.proto.DataProto.AggregatedValue getMax();

    /**
     * <code>optional .androidx.health.platform.client.proto.AggregatedValue avg = 18;</code>
     * @return Whether the avg field is set.
     */
    boolean hasAvg();
    /**
     * <code>optional .androidx.health.platform.client.proto.AggregatedValue avg = 18;</code>
     * @return The avg.
     */
    androidx.health.platform.client.proto.DataProto.AggregatedValue getAvg();

    /**
     * <code>optional int32 start_zone_offset_seconds = 19;</code>
     * @return Whether the startZoneOffsetSeconds field is set.
     */
    boolean hasStartZoneOffsetSeconds();
    /**
     * <code>optional int32 start_zone_offset_seconds = 19;</code>
     * @return The startZoneOffsetSeconds.
     */
    int getStartZoneOffsetSeconds();

    /**
     * <code>optional int32 end_zone_offset_seconds = 20;</code>
     * @return Whether the endZoneOffsetSeconds field is set.
     */
    boolean hasEndZoneOffsetSeconds();
    /**
     * <code>optional int32 end_zone_offset_seconds = 20;</code>
     * @return The endZoneOffsetSeconds.
     */
    int getEndZoneOffsetSeconds();

    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.DataPoint.SubTypeDataList&gt; sub_type_data_lists = 22;</code>
     */
    int getSubTypeDataListsCount();
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.DataPoint.SubTypeDataList&gt; sub_type_data_lists = 22;</code>
     */
    boolean containsSubTypeDataLists(
        java.lang.String key);
    /**
     * Use {@link #getSubTypeDataListsMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList>
    getSubTypeDataLists();
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.DataPoint.SubTypeDataList&gt; sub_type_data_lists = 22;</code>
     */
    java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList>
    getSubTypeDataListsMap();
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.DataPoint.SubTypeDataList&gt; sub_type_data_lists = 22;</code>
     */

    /* nullable */
androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList getSubTypeDataListsOrDefault(
        java.lang.String key,
        /* nullable */
androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList defaultValue);
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.DataPoint.SubTypeDataList&gt; sub_type_data_lists = 22;</code>
     */

    androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList getSubTypeDataListsOrThrow(
        java.lang.String key);

    /**
     * <code>optional int32 recording_method = 23;</code>
     * @return Whether the recordingMethod field is set.
     */
    boolean hasRecordingMethod();
    /**
     * <code>optional int32 recording_method = 23;</code>
     * @return The recordingMethod.
     */
    int getRecordingMethod();
  }
  /**
   * <pre>
   * Next Id: 23
   * </pre>
   *
   * Protobuf type {@code androidx.health.platform.client.proto.DataPoint}
   */
  public  static final class DataPoint extends
      com.google.protobuf.GeneratedMessageLite<
          DataPoint, DataPoint.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.health.platform.client.proto.DataPoint)
      DataPointOrBuilder {
    private DataPoint() {
      uid_ = "";
      originSeriesUid_ = "";
      clientId_ = "";
      originSampleUid_ = "";
      seriesValues_ = emptyProtobufList();
    }
    public interface SubTypeDataListOrBuilder extends
        // @@protoc_insertion_point(interface_extends:androidx.health.platform.client.proto.DataPoint.SubTypeDataList)
        com.google.protobuf.MessageLiteOrBuilder {

      /**
       * <code>repeated .androidx.health.platform.client.proto.SubTypeDataValue values = 1;</code>
       */
      java.util.List<androidx.health.platform.client.proto.DataProto.SubTypeDataValue> 
          getValuesList();
      /**
       * <code>repeated .androidx.health.platform.client.proto.SubTypeDataValue values = 1;</code>
       */
      androidx.health.platform.client.proto.DataProto.SubTypeDataValue getValues(int index);
      /**
       * <code>repeated .androidx.health.platform.client.proto.SubTypeDataValue values = 1;</code>
       */
      int getValuesCount();
    }
    /**
     * Protobuf type {@code androidx.health.platform.client.proto.DataPoint.SubTypeDataList}
     */
    public  static final class SubTypeDataList extends
        com.google.protobuf.GeneratedMessageLite<
            SubTypeDataList, SubTypeDataList.Builder> implements
        // @@protoc_insertion_point(message_implements:androidx.health.platform.client.proto.DataPoint.SubTypeDataList)
        SubTypeDataListOrBuilder {
      private SubTypeDataList() {
        values_ = emptyProtobufList();
      }
      public static final int VALUES_FIELD_NUMBER = 1;
      private com.google.protobuf.Internal.ProtobufList<androidx.health.platform.client.proto.DataProto.SubTypeDataValue> values_;
      /**
       * <code>repeated .androidx.health.platform.client.proto.SubTypeDataValue values = 1;</code>
       */
      @java.lang.Override
      public java.util.List<androidx.health.platform.client.proto.DataProto.SubTypeDataValue> getValuesList() {
        return values_;
      }
      /**
       * <code>repeated .androidx.health.platform.client.proto.SubTypeDataValue values = 1;</code>
       */
      public java.util.List<? extends androidx.health.platform.client.proto.DataProto.SubTypeDataValueOrBuilder> 
          getValuesOrBuilderList() {
        return values_;
      }
      /**
       * <code>repeated .androidx.health.platform.client.proto.SubTypeDataValue values = 1;</code>
       */
      @java.lang.Override
      public int getValuesCount() {
        return values_.size();
      }
      /**
       * <code>repeated .androidx.health.platform.client.proto.SubTypeDataValue values = 1;</code>
       */
      @java.lang.Override
      public androidx.health.platform.client.proto.DataProto.SubTypeDataValue getValues(int index) {
        return values_.get(index);
      }
      /**
       * <code>repeated .androidx.health.platform.client.proto.SubTypeDataValue values = 1;</code>
       */
      public androidx.health.platform.client.proto.DataProto.SubTypeDataValueOrBuilder getValuesOrBuilder(
          int index) {
        return values_.get(index);
      }
      private void ensureValuesIsMutable() {
        com.google.protobuf.Internal.ProtobufList<androidx.health.platform.client.proto.DataProto.SubTypeDataValue> tmp = values_;
        if (!tmp.isModifiable()) {
          values_ =
              com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
         }
      }

      /**
       * <code>repeated .androidx.health.platform.client.proto.SubTypeDataValue values = 1;</code>
       */
      private void setValues(
          int index, androidx.health.platform.client.proto.DataProto.SubTypeDataValue value) {
        value.getClass();
  ensureValuesIsMutable();
        values_.set(index, value);
      }
      /**
       * <code>repeated .androidx.health.platform.client.proto.SubTypeDataValue values = 1;</code>
       */
      private void addValues(androidx.health.platform.client.proto.DataProto.SubTypeDataValue value) {
        value.getClass();
  ensureValuesIsMutable();
        values_.add(value);
      }
      /**
       * <code>repeated .androidx.health.platform.client.proto.SubTypeDataValue values = 1;</code>
       */
      private void addValues(
          int index, androidx.health.platform.client.proto.DataProto.SubTypeDataValue value) {
        value.getClass();
  ensureValuesIsMutable();
        values_.add(index, value);
      }
      /**
       * <code>repeated .androidx.health.platform.client.proto.SubTypeDataValue values = 1;</code>
       */
      private void addAllValues(
          java.lang.Iterable<? extends androidx.health.platform.client.proto.DataProto.SubTypeDataValue> values) {
        ensureValuesIsMutable();
        com.google.protobuf.AbstractMessageLite.addAll(
            values, values_);
      }
      /**
       * <code>repeated .androidx.health.platform.client.proto.SubTypeDataValue values = 1;</code>
       */
      private void clearValues() {
        values_ = emptyProtobufList();
      }
      /**
       * <code>repeated .androidx.health.platform.client.proto.SubTypeDataValue values = 1;</code>
       */
      private void removeValues(int index) {
        ensureValuesIsMutable();
        values_.remove(index);
      }

      public static androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
      public static androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }

      public static Builder newBuilder() {
        return (Builder) DEFAULT_INSTANCE.createBuilder();
      }
      public static Builder newBuilder(androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList prototype) {
        return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
      }

      /**
       * Protobuf type {@code androidx.health.platform.client.proto.DataPoint.SubTypeDataList}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList, Builder> implements
          // @@protoc_insertion_point(builder_implements:androidx.health.platform.client.proto.DataPoint.SubTypeDataList)
          androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataListOrBuilder {
        // Construct using androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }


        /**
         * <code>repeated .androidx.health.platform.client.proto.SubTypeDataValue values = 1;</code>
         */
        @java.lang.Override
        public java.util.List<androidx.health.platform.client.proto.DataProto.SubTypeDataValue> getValuesList() {
          return java.util.Collections.unmodifiableList(
              instance.getValuesList());
        }
        /**
         * <code>repeated .androidx.health.platform.client.proto.SubTypeDataValue values = 1;</code>
         */
        @java.lang.Override
        public int getValuesCount() {
          return instance.getValuesCount();
        }/**
         * <code>repeated .androidx.health.platform.client.proto.SubTypeDataValue values = 1;</code>
         */
        @java.lang.Override
        public androidx.health.platform.client.proto.DataProto.SubTypeDataValue getValues(int index) {
          return instance.getValues(index);
        }
        /**
         * <code>repeated .androidx.health.platform.client.proto.SubTypeDataValue values = 1;</code>
         */
        public Builder setValues(
            int index, androidx.health.platform.client.proto.DataProto.SubTypeDataValue value) {
          copyOnWrite();
          instance.setValues(index, value);
          return this;
        }
        /**
         * <code>repeated .androidx.health.platform.client.proto.SubTypeDataValue values = 1;</code>
         */
        public Builder setValues(
            int index, androidx.health.platform.client.proto.DataProto.SubTypeDataValue.Builder builderForValue) {
          copyOnWrite();
          instance.setValues(index,
              builderForValue.build());
          return this;
        }
        /**
         * <code>repeated .androidx.health.platform.client.proto.SubTypeDataValue values = 1;</code>
         */
        public Builder addValues(androidx.health.platform.client.proto.DataProto.SubTypeDataValue value) {
          copyOnWrite();
          instance.addValues(value);
          return this;
        }
        /**
         * <code>repeated .androidx.health.platform.client.proto.SubTypeDataValue values = 1;</code>
         */
        public Builder addValues(
            int index, androidx.health.platform.client.proto.DataProto.SubTypeDataValue value) {
          copyOnWrite();
          instance.addValues(index, value);
          return this;
        }
        /**
         * <code>repeated .androidx.health.platform.client.proto.SubTypeDataValue values = 1;</code>
         */
        public Builder addValues(
            androidx.health.platform.client.proto.DataProto.SubTypeDataValue.Builder builderForValue) {
          copyOnWrite();
          instance.addValues(builderForValue.build());
          return this;
        }
        /**
         * <code>repeated .androidx.health.platform.client.proto.SubTypeDataValue values = 1;</code>
         */
        public Builder addValues(
            int index, androidx.health.platform.client.proto.DataProto.SubTypeDataValue.Builder builderForValue) {
          copyOnWrite();
          instance.addValues(index,
              builderForValue.build());
          return this;
        }
        /**
         * <code>repeated .androidx.health.platform.client.proto.SubTypeDataValue values = 1;</code>
         */
        public Builder addAllValues(
            java.lang.Iterable<? extends androidx.health.platform.client.proto.DataProto.SubTypeDataValue> values) {
          copyOnWrite();
          instance.addAllValues(values);
          return this;
        }
        /**
         * <code>repeated .androidx.health.platform.client.proto.SubTypeDataValue values = 1;</code>
         */
        public Builder clearValues() {
          copyOnWrite();
          instance.clearValues();
          return this;
        }
        /**
         * <code>repeated .androidx.health.platform.client.proto.SubTypeDataValue values = 1;</code>
         */
        public Builder removeValues(int index) {
          copyOnWrite();
          instance.removeValues(index);
          return this;
        }

        // @@protoc_insertion_point(builder_scope:androidx.health.platform.client.proto.DataPoint.SubTypeDataList)
      }
      @java.lang.Override
      @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
      protected final java.lang.Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          java.lang.Object arg0, java.lang.Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "values_",
                androidx.health.platform.client.proto.DataProto.SubTypeDataValue.class,
              };
              java.lang.String info =
                  "\u0001\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0001\u0000\u0001\u001b";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList> parser = PARSER;
            if (parser == null) {
              synchronized (androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList>(
                          DEFAULT_INSTANCE);
                  PARSER = parser;
                }
              }
            }
            return parser;
        }
        case GET_MEMOIZED_IS_INITIALIZED: {
          return (byte) 1;
        }
        case SET_MEMOIZED_IS_INITIALIZED: {
          return null;
        }
        }
        throw new UnsupportedOperationException();
      }


      // @@protoc_insertion_point(class_scope:androidx.health.platform.client.proto.DataPoint.SubTypeDataList)
      private static final androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList DEFAULT_INSTANCE;
      static {
        SubTypeDataList defaultInstance = new SubTypeDataList();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          SubTypeDataList.class, defaultInstance);
      }

      public static androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static volatile com.google.protobuf.Parser<SubTypeDataList> PARSER;

      public static com.google.protobuf.Parser<SubTypeDataList> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }

    private int bitField0_;
    public static final int DATA_TYPE_FIELD_NUMBER = 1;
    private androidx.health.platform.client.proto.DataProto.DataType dataType_;
    /**
     * <code>optional .androidx.health.platform.client.proto.DataType data_type = 1;</code>
     */
    @java.lang.Override
    public boolean hasDataType() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional .androidx.health.platform.client.proto.DataType data_type = 1;</code>
     */
    @java.lang.Override
    public androidx.health.platform.client.proto.DataProto.DataType getDataType() {
      return dataType_ == null ? androidx.health.platform.client.proto.DataProto.DataType.getDefaultInstance() : dataType_;
    }
    /**
     * <code>optional .androidx.health.platform.client.proto.DataType data_type = 1;</code>
     */
    private void setDataType(androidx.health.platform.client.proto.DataProto.DataType value) {
      value.getClass();
  dataType_ = value;
      bitField0_ |= 0x00000001;
      }
    /**
     * <code>optional .androidx.health.platform.client.proto.DataType data_type = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeDataType(androidx.health.platform.client.proto.DataProto.DataType value) {
      value.getClass();
  if (dataType_ != null &&
          dataType_ != androidx.health.platform.client.proto.DataProto.DataType.getDefaultInstance()) {
        dataType_ =
          androidx.health.platform.client.proto.DataProto.DataType.newBuilder(dataType_).mergeFrom(value).buildPartial();
      } else {
        dataType_ = value;
      }
      bitField0_ |= 0x00000001;
    }
    /**
     * <code>optional .androidx.health.platform.client.proto.DataType data_type = 1;</code>
     */
    private void clearDataType() {  dataType_ = null;
      bitField0_ = (bitField0_ & ~0x00000001);
    }

    public static final int VALUES_FIELD_NUMBER = 2;
    private static final class ValuesDefaultEntryHolder {
      static final com.google.protobuf.MapEntryLite<
          java.lang.String, androidx.health.platform.client.proto.DataProto.Value> defaultEntry =
              com.google.protobuf.MapEntryLite
              .<java.lang.String, androidx.health.platform.client.proto.DataProto.Value>newDefaultInstance(
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.MESSAGE,
                  androidx.health.platform.client.proto.DataProto.Value.getDefaultInstance());
    }
    private com.google.protobuf.MapFieldLite<
        java.lang.String, androidx.health.platform.client.proto.DataProto.Value> values_ =
            com.google.protobuf.MapFieldLite.emptyMapField();
    private com.google.protobuf.MapFieldLite<java.lang.String, androidx.health.platform.client.proto.DataProto.Value>
    internalGetValues() {
      return values_;
    }
    private com.google.protobuf.MapFieldLite<java.lang.String, androidx.health.platform.client.proto.DataProto.Value>
    internalGetMutableValues() {
      if (!values_.isMutable()) {
        values_ = values_.mutableCopy();
      }
      return values_;
    }
    @java.lang.Override

    public int getValuesCount() {
      return internalGetValues().size();
    }
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 2;</code>
     */
    @java.lang.Override

    public boolean containsValues(
        java.lang.String key) {
      java.lang.Class<?> keyClass = key.getClass();
      return internalGetValues().containsKey(key);
    }
    /**
     * Use {@link #getValuesMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value> getValues() {
      return getValuesMap();
    }
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 2;</code>
     */
    @java.lang.Override

    public java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value> getValuesMap() {
      return java.util.Collections.unmodifiableMap(
          internalGetValues());
    }
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 2;</code>
     */
    @java.lang.Override

    public /* nullable */
androidx.health.platform.client.proto.DataProto.Value getValuesOrDefault(
        java.lang.String key,
        /* nullable */
androidx.health.platform.client.proto.DataProto.Value defaultValue) {
      java.lang.Class<?> keyClass = key.getClass();
      java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value> map =
          internalGetValues();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 2;</code>
     */
    @java.lang.Override

    public androidx.health.platform.client.proto.DataProto.Value getValuesOrThrow(
        java.lang.String key) {
      java.lang.Class<?> keyClass = key.getClass();
      java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value> map =
          internalGetValues();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 2;</code>
     */
    private java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value>
    getMutableValuesMap() {
      return internalGetMutableValues();
    }

    public static final int UID_FIELD_NUMBER = 3;
    private java.lang.String uid_;
    /**
     * <code>optional string uid = 3;</code>
     * @return Whether the uid field is set.
     */
    @java.lang.Override
    public boolean hasUid() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional string uid = 3;</code>
     * @return The uid.
     */
    @java.lang.Override
    public java.lang.String getUid() {
      return uid_;
    }
    /**
     * <code>optional string uid = 3;</code>
     * @return The bytes for uid.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getUidBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(uid_);
    }
    /**
     * <code>optional string uid = 3;</code>
     * @param value The uid to set.
     */
    private void setUid(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  bitField0_ |= 0x00000002;
      uid_ = value;
    }
    /**
     * <code>optional string uid = 3;</code>
     */
    private void clearUid() {
      bitField0_ = (bitField0_ & ~0x00000002);
      uid_ = getDefaultInstance().getUid();
    }
    /**
     * <code>optional string uid = 3;</code>
     * @param value The bytes for uid to set.
     */
    private void setUidBytes(
        com.google.protobuf.ByteString value) {
      uid_ = value.toStringUtf8();
      bitField0_ |= 0x00000002;
    }

    public static final int ORIGIN_SERIES_UID_FIELD_NUMBER = 4;
    private java.lang.String originSeriesUid_;
    /**
     * <code>optional string origin_series_uid = 4;</code>
     * @return Whether the originSeriesUid field is set.
     */
    @java.lang.Override
    public boolean hasOriginSeriesUid() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional string origin_series_uid = 4;</code>
     * @return The originSeriesUid.
     */
    @java.lang.Override
    public java.lang.String getOriginSeriesUid() {
      return originSeriesUid_;
    }
    /**
     * <code>optional string origin_series_uid = 4;</code>
     * @return The bytes for originSeriesUid.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getOriginSeriesUidBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(originSeriesUid_);
    }
    /**
     * <code>optional string origin_series_uid = 4;</code>
     * @param value The originSeriesUid to set.
     */
    private void setOriginSeriesUid(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  bitField0_ |= 0x00000004;
      originSeriesUid_ = value;
    }
    /**
     * <code>optional string origin_series_uid = 4;</code>
     */
    private void clearOriginSeriesUid() {
      bitField0_ = (bitField0_ & ~0x00000004);
      originSeriesUid_ = getDefaultInstance().getOriginSeriesUid();
    }
    /**
     * <code>optional string origin_series_uid = 4;</code>
     * @param value The bytes for originSeriesUid to set.
     */
    private void setOriginSeriesUidBytes(
        com.google.protobuf.ByteString value) {
      originSeriesUid_ = value.toStringUtf8();
      bitField0_ |= 0x00000004;
    }

    public static final int DATA_ORIGIN_FIELD_NUMBER = 5;
    private androidx.health.platform.client.proto.DataProto.DataOrigin dataOrigin_;
    /**
     * <code>optional .androidx.health.platform.client.proto.DataOrigin data_origin = 5;</code>
     */
    @java.lang.Override
    public boolean hasDataOrigin() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional .androidx.health.platform.client.proto.DataOrigin data_origin = 5;</code>
     */
    @java.lang.Override
    public androidx.health.platform.client.proto.DataProto.DataOrigin getDataOrigin() {
      return dataOrigin_ == null ? androidx.health.platform.client.proto.DataProto.DataOrigin.getDefaultInstance() : dataOrigin_;
    }
    /**
     * <code>optional .androidx.health.platform.client.proto.DataOrigin data_origin = 5;</code>
     */
    private void setDataOrigin(androidx.health.platform.client.proto.DataProto.DataOrigin value) {
      value.getClass();
  dataOrigin_ = value;
      bitField0_ |= 0x00000008;
      }
    /**
     * <code>optional .androidx.health.platform.client.proto.DataOrigin data_origin = 5;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeDataOrigin(androidx.health.platform.client.proto.DataProto.DataOrigin value) {
      value.getClass();
  if (dataOrigin_ != null &&
          dataOrigin_ != androidx.health.platform.client.proto.DataProto.DataOrigin.getDefaultInstance()) {
        dataOrigin_ =
          androidx.health.platform.client.proto.DataProto.DataOrigin.newBuilder(dataOrigin_).mergeFrom(value).buildPartial();
      } else {
        dataOrigin_ = value;
      }
      bitField0_ |= 0x00000008;
    }
    /**
     * <code>optional .androidx.health.platform.client.proto.DataOrigin data_origin = 5;</code>
     */
    private void clearDataOrigin() {  dataOrigin_ = null;
      bitField0_ = (bitField0_ & ~0x00000008);
    }

    public static final int ZONE_OFFSET_SECONDS_FIELD_NUMBER = 6;
    private int zoneOffsetSeconds_;
    /**
     * <pre>
     * Unset if it is interval or series data, use start_zone_offset_seconds and
     * end_zone_offset_seconds instead.
     * </pre>
     *
     * <code>optional int32 zone_offset_seconds = 6;</code>
     * @return Whether the zoneOffsetSeconds field is set.
     */
    @java.lang.Override
    public boolean hasZoneOffsetSeconds() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <pre>
     * Unset if it is interval or series data, use start_zone_offset_seconds and
     * end_zone_offset_seconds instead.
     * </pre>
     *
     * <code>optional int32 zone_offset_seconds = 6;</code>
     * @return The zoneOffsetSeconds.
     */
    @java.lang.Override
    public int getZoneOffsetSeconds() {
      return zoneOffsetSeconds_;
    }
    /**
     * <pre>
     * Unset if it is interval or series data, use start_zone_offset_seconds and
     * end_zone_offset_seconds instead.
     * </pre>
     *
     * <code>optional int32 zone_offset_seconds = 6;</code>
     * @param value The zoneOffsetSeconds to set.
     */
    private void setZoneOffsetSeconds(int value) {
      bitField0_ |= 0x00000010;
      zoneOffsetSeconds_ = value;
    }
    /**
     * <pre>
     * Unset if it is interval or series data, use start_zone_offset_seconds and
     * end_zone_offset_seconds instead.
     * </pre>
     *
     * <code>optional int32 zone_offset_seconds = 6;</code>
     */
    private void clearZoneOffsetSeconds() {
      bitField0_ = (bitField0_ & ~0x00000010);
      zoneOffsetSeconds_ = 0;
    }

    public static final int UPDATE_TIME_MILLIS_FIELD_NUMBER = 7;
    private long updateTimeMillis_;
    /**
     * <code>optional int64 update_time_millis = 7;</code>
     * @return Whether the updateTimeMillis field is set.
     */
    @java.lang.Override
    public boolean hasUpdateTimeMillis() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <code>optional int64 update_time_millis = 7;</code>
     * @return The updateTimeMillis.
     */
    @java.lang.Override
    public long getUpdateTimeMillis() {
      return updateTimeMillis_;
    }
    /**
     * <code>optional int64 update_time_millis = 7;</code>
     * @param value The updateTimeMillis to set.
     */
    private void setUpdateTimeMillis(long value) {
      bitField0_ |= 0x00000020;
      updateTimeMillis_ = value;
    }
    /**
     * <code>optional int64 update_time_millis = 7;</code>
     */
    private void clearUpdateTimeMillis() {
      bitField0_ = (bitField0_ & ~0x00000020);
      updateTimeMillis_ = 0L;
    }

    public static final int INSTANT_TIME_MILLIS_FIELD_NUMBER = 8;
    private long instantTimeMillis_;
    /**
     * <pre>
     * Unset if interval start/end millis are used.
     * </pre>
     *
     * <code>optional int64 instant_time_millis = 8;</code>
     * @return Whether the instantTimeMillis field is set.
     */
    @java.lang.Override
    public boolean hasInstantTimeMillis() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <pre>
     * Unset if interval start/end millis are used.
     * </pre>
     *
     * <code>optional int64 instant_time_millis = 8;</code>
     * @return The instantTimeMillis.
     */
    @java.lang.Override
    public long getInstantTimeMillis() {
      return instantTimeMillis_;
    }
    /**
     * <pre>
     * Unset if interval start/end millis are used.
     * </pre>
     *
     * <code>optional int64 instant_time_millis = 8;</code>
     * @param value The instantTimeMillis to set.
     */
    private void setInstantTimeMillis(long value) {
      bitField0_ |= 0x00000040;
      instantTimeMillis_ = value;
    }
    /**
     * <pre>
     * Unset if interval start/end millis are used.
     * </pre>
     *
     * <code>optional int64 instant_time_millis = 8;</code>
     */
    private void clearInstantTimeMillis() {
      bitField0_ = (bitField0_ & ~0x00000040);
      instantTimeMillis_ = 0L;
    }

    public static final int START_TIME_MILLIS_FIELD_NUMBER = 9;
    private long startTimeMillis_;
    /**
     * <code>optional int64 start_time_millis = 9;</code>
     * @return Whether the startTimeMillis field is set.
     */
    @java.lang.Override
    public boolean hasStartTimeMillis() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <code>optional int64 start_time_millis = 9;</code>
     * @return The startTimeMillis.
     */
    @java.lang.Override
    public long getStartTimeMillis() {
      return startTimeMillis_;
    }
    /**
     * <code>optional int64 start_time_millis = 9;</code>
     * @param value The startTimeMillis to set.
     */
    private void setStartTimeMillis(long value) {
      bitField0_ |= 0x00000080;
      startTimeMillis_ = value;
    }
    /**
     * <code>optional int64 start_time_millis = 9;</code>
     */
    private void clearStartTimeMillis() {
      bitField0_ = (bitField0_ & ~0x00000080);
      startTimeMillis_ = 0L;
    }

    public static final int END_TIME_MILLIS_FIELD_NUMBER = 10;
    private long endTimeMillis_;
    /**
     * <code>optional int64 end_time_millis = 10;</code>
     * @return Whether the endTimeMillis field is set.
     */
    @java.lang.Override
    public boolean hasEndTimeMillis() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <code>optional int64 end_time_millis = 10;</code>
     * @return The endTimeMillis.
     */
    @java.lang.Override
    public long getEndTimeMillis() {
      return endTimeMillis_;
    }
    /**
     * <code>optional int64 end_time_millis = 10;</code>
     * @param value The endTimeMillis to set.
     */
    private void setEndTimeMillis(long value) {
      bitField0_ |= 0x00000100;
      endTimeMillis_ = value;
    }
    /**
     * <code>optional int64 end_time_millis = 10;</code>
     */
    private void clearEndTimeMillis() {
      bitField0_ = (bitField0_ & ~0x00000100);
      endTimeMillis_ = 0L;
    }

    public static final int CLIENT_ID_FIELD_NUMBER = 11;
    private java.lang.String clientId_;
    /**
     * <code>optional string client_id = 11;</code>
     * @return Whether the clientId field is set.
     */
    @java.lang.Override
    public boolean hasClientId() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <code>optional string client_id = 11;</code>
     * @return The clientId.
     */
    @java.lang.Override
    public java.lang.String getClientId() {
      return clientId_;
    }
    /**
     * <code>optional string client_id = 11;</code>
     * @return The bytes for clientId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getClientIdBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(clientId_);
    }
    /**
     * <code>optional string client_id = 11;</code>
     * @param value The clientId to set.
     */
    private void setClientId(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  bitField0_ |= 0x00000200;
      clientId_ = value;
    }
    /**
     * <code>optional string client_id = 11;</code>
     */
    private void clearClientId() {
      bitField0_ = (bitField0_ & ~0x00000200);
      clientId_ = getDefaultInstance().getClientId();
    }
    /**
     * <code>optional string client_id = 11;</code>
     * @param value The bytes for clientId to set.
     */
    private void setClientIdBytes(
        com.google.protobuf.ByteString value) {
      clientId_ = value.toStringUtf8();
      bitField0_ |= 0x00000200;
    }

    public static final int CLIENT_VERSION_FIELD_NUMBER = 12;
    private long clientVersion_;
    /**
     * <code>optional int64 client_version = 12;</code>
     * @return Whether the clientVersion field is set.
     */
    @java.lang.Override
    public boolean hasClientVersion() {
      return ((bitField0_ & 0x00000400) != 0);
    }
    /**
     * <code>optional int64 client_version = 12;</code>
     * @return The clientVersion.
     */
    @java.lang.Override
    public long getClientVersion() {
      return clientVersion_;
    }
    /**
     * <code>optional int64 client_version = 12;</code>
     * @param value The clientVersion to set.
     */
    private void setClientVersion(long value) {
      bitField0_ |= 0x00000400;
      clientVersion_ = value;
    }
    /**
     * <code>optional int64 client_version = 12;</code>
     */
    private void clearClientVersion() {
      bitField0_ = (bitField0_ & ~0x00000400);
      clientVersion_ = 0L;
    }

    public static final int DEVICE_FIELD_NUMBER = 13;
    private androidx.health.platform.client.proto.DataProto.Device device_;
    /**
     * <code>optional .androidx.health.platform.client.proto.Device device = 13;</code>
     */
    @java.lang.Override
    public boolean hasDevice() {
      return ((bitField0_ & 0x00000800) != 0);
    }
    /**
     * <code>optional .androidx.health.platform.client.proto.Device device = 13;</code>
     */
    @java.lang.Override
    public androidx.health.platform.client.proto.DataProto.Device getDevice() {
      return device_ == null ? androidx.health.platform.client.proto.DataProto.Device.getDefaultInstance() : device_;
    }
    /**
     * <code>optional .androidx.health.platform.client.proto.Device device = 13;</code>
     */
    private void setDevice(androidx.health.platform.client.proto.DataProto.Device value) {
      value.getClass();
  device_ = value;
      bitField0_ |= 0x00000800;
      }
    /**
     * <code>optional .androidx.health.platform.client.proto.Device device = 13;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeDevice(androidx.health.platform.client.proto.DataProto.Device value) {
      value.getClass();
  if (device_ != null &&
          device_ != androidx.health.platform.client.proto.DataProto.Device.getDefaultInstance()) {
        device_ =
          androidx.health.platform.client.proto.DataProto.Device.newBuilder(device_).mergeFrom(value).buildPartial();
      } else {
        device_ = value;
      }
      bitField0_ |= 0x00000800;
    }
    /**
     * <code>optional .androidx.health.platform.client.proto.Device device = 13;</code>
     */
    private void clearDevice() {  device_ = null;
      bitField0_ = (bitField0_ & ~0x00000800);
    }

    public static final int ORIGIN_SAMPLE_UID_FIELD_NUMBER = 14;
    private java.lang.String originSampleUid_;
    /**
     * <code>optional string origin_sample_uid = 14;</code>
     * @return Whether the originSampleUid field is set.
     */
    @java.lang.Override
    public boolean hasOriginSampleUid() {
      return ((bitField0_ & 0x00001000) != 0);
    }
    /**
     * <code>optional string origin_sample_uid = 14;</code>
     * @return The originSampleUid.
     */
    @java.lang.Override
    public java.lang.String getOriginSampleUid() {
      return originSampleUid_;
    }
    /**
     * <code>optional string origin_sample_uid = 14;</code>
     * @return The bytes for originSampleUid.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getOriginSampleUidBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(originSampleUid_);
    }
    /**
     * <code>optional string origin_sample_uid = 14;</code>
     * @param value The originSampleUid to set.
     */
    private void setOriginSampleUid(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  bitField0_ |= 0x00001000;
      originSampleUid_ = value;
    }
    /**
     * <code>optional string origin_sample_uid = 14;</code>
     */
    private void clearOriginSampleUid() {
      bitField0_ = (bitField0_ & ~0x00001000);
      originSampleUid_ = getDefaultInstance().getOriginSampleUid();
    }
    /**
     * <code>optional string origin_sample_uid = 14;</code>
     * @param value The bytes for originSampleUid to set.
     */
    private void setOriginSampleUidBytes(
        com.google.protobuf.ByteString value) {
      originSampleUid_ = value.toStringUtf8();
      bitField0_ |= 0x00001000;
    }

    public static final int SERIES_VALUES_FIELD_NUMBER = 15;
    private com.google.protobuf.Internal.ProtobufList<androidx.health.platform.client.proto.DataProto.SeriesValue> seriesValues_;
    /**
     * <code>repeated .androidx.health.platform.client.proto.SeriesValue series_values = 15;</code>
     */
    @java.lang.Override
    public java.util.List<androidx.health.platform.client.proto.DataProto.SeriesValue> getSeriesValuesList() {
      return seriesValues_;
    }
    /**
     * <code>repeated .androidx.health.platform.client.proto.SeriesValue series_values = 15;</code>
     */
    public java.util.List<? extends androidx.health.platform.client.proto.DataProto.SeriesValueOrBuilder> 
        getSeriesValuesOrBuilderList() {
      return seriesValues_;
    }
    /**
     * <code>repeated .androidx.health.platform.client.proto.SeriesValue series_values = 15;</code>
     */
    @java.lang.Override
    public int getSeriesValuesCount() {
      return seriesValues_.size();
    }
    /**
     * <code>repeated .androidx.health.platform.client.proto.SeriesValue series_values = 15;</code>
     */
    @java.lang.Override
    public androidx.health.platform.client.proto.DataProto.SeriesValue getSeriesValues(int index) {
      return seriesValues_.get(index);
    }
    /**
     * <code>repeated .androidx.health.platform.client.proto.SeriesValue series_values = 15;</code>
     */
    public androidx.health.platform.client.proto.DataProto.SeriesValueOrBuilder getSeriesValuesOrBuilder(
        int index) {
      return seriesValues_.get(index);
    }
    private void ensureSeriesValuesIsMutable() {
      com.google.protobuf.Internal.ProtobufList<androidx.health.platform.client.proto.DataProto.SeriesValue> tmp = seriesValues_;
      if (!tmp.isModifiable()) {
        seriesValues_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <code>repeated .androidx.health.platform.client.proto.SeriesValue series_values = 15;</code>
     */
    private void setSeriesValues(
        int index, androidx.health.platform.client.proto.DataProto.SeriesValue value) {
      value.getClass();
  ensureSeriesValuesIsMutable();
      seriesValues_.set(index, value);
    }
    /**
     * <code>repeated .androidx.health.platform.client.proto.SeriesValue series_values = 15;</code>
     */
    private void addSeriesValues(androidx.health.platform.client.proto.DataProto.SeriesValue value) {
      value.getClass();
  ensureSeriesValuesIsMutable();
      seriesValues_.add(value);
    }
    /**
     * <code>repeated .androidx.health.platform.client.proto.SeriesValue series_values = 15;</code>
     */
    private void addSeriesValues(
        int index, androidx.health.platform.client.proto.DataProto.SeriesValue value) {
      value.getClass();
  ensureSeriesValuesIsMutable();
      seriesValues_.add(index, value);
    }
    /**
     * <code>repeated .androidx.health.platform.client.proto.SeriesValue series_values = 15;</code>
     */
    private void addAllSeriesValues(
        java.lang.Iterable<? extends androidx.health.platform.client.proto.DataProto.SeriesValue> values) {
      ensureSeriesValuesIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, seriesValues_);
    }
    /**
     * <code>repeated .androidx.health.platform.client.proto.SeriesValue series_values = 15;</code>
     */
    private void clearSeriesValues() {
      seriesValues_ = emptyProtobufList();
    }
    /**
     * <code>repeated .androidx.health.platform.client.proto.SeriesValue series_values = 15;</code>
     */
    private void removeSeriesValues(int index) {
      ensureSeriesValuesIsMutable();
      seriesValues_.remove(index);
    }

    public static final int MIN_FIELD_NUMBER = 16;
    private androidx.health.platform.client.proto.DataProto.AggregatedValue min_;
    /**
     * <code>optional .androidx.health.platform.client.proto.AggregatedValue min = 16;</code>
     */
    @java.lang.Override
    public boolean hasMin() {
      return ((bitField0_ & 0x00002000) != 0);
    }
    /**
     * <code>optional .androidx.health.platform.client.proto.AggregatedValue min = 16;</code>
     */
    @java.lang.Override
    public androidx.health.platform.client.proto.DataProto.AggregatedValue getMin() {
      return min_ == null ? androidx.health.platform.client.proto.DataProto.AggregatedValue.getDefaultInstance() : min_;
    }
    /**
     * <code>optional .androidx.health.platform.client.proto.AggregatedValue min = 16;</code>
     */
    private void setMin(androidx.health.platform.client.proto.DataProto.AggregatedValue value) {
      value.getClass();
  min_ = value;
      bitField0_ |= 0x00002000;
      }
    /**
     * <code>optional .androidx.health.platform.client.proto.AggregatedValue min = 16;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeMin(androidx.health.platform.client.proto.DataProto.AggregatedValue value) {
      value.getClass();
  if (min_ != null &&
          min_ != androidx.health.platform.client.proto.DataProto.AggregatedValue.getDefaultInstance()) {
        min_ =
          androidx.health.platform.client.proto.DataProto.AggregatedValue.newBuilder(min_).mergeFrom(value).buildPartial();
      } else {
        min_ = value;
      }
      bitField0_ |= 0x00002000;
    }
    /**
     * <code>optional .androidx.health.platform.client.proto.AggregatedValue min = 16;</code>
     */
    private void clearMin() {  min_ = null;
      bitField0_ = (bitField0_ & ~0x00002000);
    }

    public static final int MAX_FIELD_NUMBER = 17;
    private androidx.health.platform.client.proto.DataProto.AggregatedValue max_;
    /**
     * <code>optional .androidx.health.platform.client.proto.AggregatedValue max = 17;</code>
     */
    @java.lang.Override
    public boolean hasMax() {
      return ((bitField0_ & 0x00004000) != 0);
    }
    /**
     * <code>optional .androidx.health.platform.client.proto.AggregatedValue max = 17;</code>
     */
    @java.lang.Override
    public androidx.health.platform.client.proto.DataProto.AggregatedValue getMax() {
      return max_ == null ? androidx.health.platform.client.proto.DataProto.AggregatedValue.getDefaultInstance() : max_;
    }
    /**
     * <code>optional .androidx.health.platform.client.proto.AggregatedValue max = 17;</code>
     */
    private void setMax(androidx.health.platform.client.proto.DataProto.AggregatedValue value) {
      value.getClass();
  max_ = value;
      bitField0_ |= 0x00004000;
      }
    /**
     * <code>optional .androidx.health.platform.client.proto.AggregatedValue max = 17;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeMax(androidx.health.platform.client.proto.DataProto.AggregatedValue value) {
      value.getClass();
  if (max_ != null &&
          max_ != androidx.health.platform.client.proto.DataProto.AggregatedValue.getDefaultInstance()) {
        max_ =
          androidx.health.platform.client.proto.DataProto.AggregatedValue.newBuilder(max_).mergeFrom(value).buildPartial();
      } else {
        max_ = value;
      }
      bitField0_ |= 0x00004000;
    }
    /**
     * <code>optional .androidx.health.platform.client.proto.AggregatedValue max = 17;</code>
     */
    private void clearMax() {  max_ = null;
      bitField0_ = (bitField0_ & ~0x00004000);
    }

    public static final int AVG_FIELD_NUMBER = 18;
    private androidx.health.platform.client.proto.DataProto.AggregatedValue avg_;
    /**
     * <code>optional .androidx.health.platform.client.proto.AggregatedValue avg = 18;</code>
     */
    @java.lang.Override
    public boolean hasAvg() {
      return ((bitField0_ & 0x00008000) != 0);
    }
    /**
     * <code>optional .androidx.health.platform.client.proto.AggregatedValue avg = 18;</code>
     */
    @java.lang.Override
    public androidx.health.platform.client.proto.DataProto.AggregatedValue getAvg() {
      return avg_ == null ? androidx.health.platform.client.proto.DataProto.AggregatedValue.getDefaultInstance() : avg_;
    }
    /**
     * <code>optional .androidx.health.platform.client.proto.AggregatedValue avg = 18;</code>
     */
    private void setAvg(androidx.health.platform.client.proto.DataProto.AggregatedValue value) {
      value.getClass();
  avg_ = value;
      bitField0_ |= 0x00008000;
      }
    /**
     * <code>optional .androidx.health.platform.client.proto.AggregatedValue avg = 18;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeAvg(androidx.health.platform.client.proto.DataProto.AggregatedValue value) {
      value.getClass();
  if (avg_ != null &&
          avg_ != androidx.health.platform.client.proto.DataProto.AggregatedValue.getDefaultInstance()) {
        avg_ =
          androidx.health.platform.client.proto.DataProto.AggregatedValue.newBuilder(avg_).mergeFrom(value).buildPartial();
      } else {
        avg_ = value;
      }
      bitField0_ |= 0x00008000;
    }
    /**
     * <code>optional .androidx.health.platform.client.proto.AggregatedValue avg = 18;</code>
     */
    private void clearAvg() {  avg_ = null;
      bitField0_ = (bitField0_ & ~0x00008000);
    }

    public static final int START_ZONE_OFFSET_SECONDS_FIELD_NUMBER = 19;
    private int startZoneOffsetSeconds_;
    /**
     * <code>optional int32 start_zone_offset_seconds = 19;</code>
     * @return Whether the startZoneOffsetSeconds field is set.
     */
    @java.lang.Override
    public boolean hasStartZoneOffsetSeconds() {
      return ((bitField0_ & 0x00010000) != 0);
    }
    /**
     * <code>optional int32 start_zone_offset_seconds = 19;</code>
     * @return The startZoneOffsetSeconds.
     */
    @java.lang.Override
    public int getStartZoneOffsetSeconds() {
      return startZoneOffsetSeconds_;
    }
    /**
     * <code>optional int32 start_zone_offset_seconds = 19;</code>
     * @param value The startZoneOffsetSeconds to set.
     */
    private void setStartZoneOffsetSeconds(int value) {
      bitField0_ |= 0x00010000;
      startZoneOffsetSeconds_ = value;
    }
    /**
     * <code>optional int32 start_zone_offset_seconds = 19;</code>
     */
    private void clearStartZoneOffsetSeconds() {
      bitField0_ = (bitField0_ & ~0x00010000);
      startZoneOffsetSeconds_ = 0;
    }

    public static final int END_ZONE_OFFSET_SECONDS_FIELD_NUMBER = 20;
    private int endZoneOffsetSeconds_;
    /**
     * <code>optional int32 end_zone_offset_seconds = 20;</code>
     * @return Whether the endZoneOffsetSeconds field is set.
     */
    @java.lang.Override
    public boolean hasEndZoneOffsetSeconds() {
      return ((bitField0_ & 0x00020000) != 0);
    }
    /**
     * <code>optional int32 end_zone_offset_seconds = 20;</code>
     * @return The endZoneOffsetSeconds.
     */
    @java.lang.Override
    public int getEndZoneOffsetSeconds() {
      return endZoneOffsetSeconds_;
    }
    /**
     * <code>optional int32 end_zone_offset_seconds = 20;</code>
     * @param value The endZoneOffsetSeconds to set.
     */
    private void setEndZoneOffsetSeconds(int value) {
      bitField0_ |= 0x00020000;
      endZoneOffsetSeconds_ = value;
    }
    /**
     * <code>optional int32 end_zone_offset_seconds = 20;</code>
     */
    private void clearEndZoneOffsetSeconds() {
      bitField0_ = (bitField0_ & ~0x00020000);
      endZoneOffsetSeconds_ = 0;
    }

    public static final int SUB_TYPE_DATA_LISTS_FIELD_NUMBER = 22;
    private static final class SubTypeDataListsDefaultEntryHolder {
      static final com.google.protobuf.MapEntryLite<
          java.lang.String, androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList> defaultEntry =
              com.google.protobuf.MapEntryLite
              .<java.lang.String, androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList>newDefaultInstance(
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.MESSAGE,
                  androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList.getDefaultInstance());
    }
    private com.google.protobuf.MapFieldLite<
        java.lang.String, androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList> subTypeDataLists_ =
            com.google.protobuf.MapFieldLite.emptyMapField();
    private com.google.protobuf.MapFieldLite<java.lang.String, androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList>
    internalGetSubTypeDataLists() {
      return subTypeDataLists_;
    }
    private com.google.protobuf.MapFieldLite<java.lang.String, androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList>
    internalGetMutableSubTypeDataLists() {
      if (!subTypeDataLists_.isMutable()) {
        subTypeDataLists_ = subTypeDataLists_.mutableCopy();
      }
      return subTypeDataLists_;
    }
    @java.lang.Override

    public int getSubTypeDataListsCount() {
      return internalGetSubTypeDataLists().size();
    }
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.DataPoint.SubTypeDataList&gt; sub_type_data_lists = 22;</code>
     */
    @java.lang.Override

    public boolean containsSubTypeDataLists(
        java.lang.String key) {
      java.lang.Class<?> keyClass = key.getClass();
      return internalGetSubTypeDataLists().containsKey(key);
    }
    /**
     * Use {@link #getSubTypeDataListsMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList> getSubTypeDataLists() {
      return getSubTypeDataListsMap();
    }
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.DataPoint.SubTypeDataList&gt; sub_type_data_lists = 22;</code>
     */
    @java.lang.Override

    public java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList> getSubTypeDataListsMap() {
      return java.util.Collections.unmodifiableMap(
          internalGetSubTypeDataLists());
    }
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.DataPoint.SubTypeDataList&gt; sub_type_data_lists = 22;</code>
     */
    @java.lang.Override

    public /* nullable */
androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList getSubTypeDataListsOrDefault(
        java.lang.String key,
        /* nullable */
androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList defaultValue) {
      java.lang.Class<?> keyClass = key.getClass();
      java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList> map =
          internalGetSubTypeDataLists();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.DataPoint.SubTypeDataList&gt; sub_type_data_lists = 22;</code>
     */
    @java.lang.Override

    public androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList getSubTypeDataListsOrThrow(
        java.lang.String key) {
      java.lang.Class<?> keyClass = key.getClass();
      java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList> map =
          internalGetSubTypeDataLists();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.DataPoint.SubTypeDataList&gt; sub_type_data_lists = 22;</code>
     */
    private java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList>
    getMutableSubTypeDataListsMap() {
      return internalGetMutableSubTypeDataLists();
    }

    public static final int RECORDING_METHOD_FIELD_NUMBER = 23;
    private int recordingMethod_;
    /**
     * <code>optional int32 recording_method = 23;</code>
     * @return Whether the recordingMethod field is set.
     */
    @java.lang.Override
    public boolean hasRecordingMethod() {
      return ((bitField0_ & 0x00040000) != 0);
    }
    /**
     * <code>optional int32 recording_method = 23;</code>
     * @return The recordingMethod.
     */
    @java.lang.Override
    public int getRecordingMethod() {
      return recordingMethod_;
    }
    /**
     * <code>optional int32 recording_method = 23;</code>
     * @param value The recordingMethod to set.
     */
    private void setRecordingMethod(int value) {
      bitField0_ |= 0x00040000;
      recordingMethod_ = value;
    }
    /**
     * <code>optional int32 recording_method = 23;</code>
     */
    private void clearRecordingMethod() {
      bitField0_ = (bitField0_ & ~0x00040000);
      recordingMethod_ = 0;
    }

    public static androidx.health.platform.client.proto.DataProto.DataPoint parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.health.platform.client.proto.DataProto.DataPoint parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.DataPoint parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.health.platform.client.proto.DataProto.DataPoint parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.DataPoint parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.health.platform.client.proto.DataProto.DataPoint parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.DataPoint parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.health.platform.client.proto.DataProto.DataPoint parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.DataPoint parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.health.platform.client.proto.DataProto.DataPoint parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.DataPoint parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.health.platform.client.proto.DataProto.DataPoint parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.health.platform.client.proto.DataProto.DataPoint prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * <pre>
     * Next Id: 23
     * </pre>
     *
     * Protobuf type {@code androidx.health.platform.client.proto.DataPoint}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.health.platform.client.proto.DataProto.DataPoint, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.health.platform.client.proto.DataPoint)
        androidx.health.platform.client.proto.DataProto.DataPointOrBuilder {
      // Construct using androidx.health.platform.client.proto.DataProto.DataPoint.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>optional .androidx.health.platform.client.proto.DataType data_type = 1;</code>
       */
      @java.lang.Override
      public boolean hasDataType() {
        return instance.hasDataType();
      }
      /**
       * <code>optional .androidx.health.platform.client.proto.DataType data_type = 1;</code>
       */
      @java.lang.Override
      public androidx.health.platform.client.proto.DataProto.DataType getDataType() {
        return instance.getDataType();
      }
      /**
       * <code>optional .androidx.health.platform.client.proto.DataType data_type = 1;</code>
       */
      public Builder setDataType(androidx.health.platform.client.proto.DataProto.DataType value) {
        copyOnWrite();
        instance.setDataType(value);
        return this;
        }
      /**
       * <code>optional .androidx.health.platform.client.proto.DataType data_type = 1;</code>
       */
      public Builder setDataType(
          androidx.health.platform.client.proto.DataProto.DataType.Builder builderForValue) {
        copyOnWrite();
        instance.setDataType(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .androidx.health.platform.client.proto.DataType data_type = 1;</code>
       */
      public Builder mergeDataType(androidx.health.platform.client.proto.DataProto.DataType value) {
        copyOnWrite();
        instance.mergeDataType(value);
        return this;
      }
      /**
       * <code>optional .androidx.health.platform.client.proto.DataType data_type = 1;</code>
       */
      public Builder clearDataType() {  copyOnWrite();
        instance.clearDataType();
        return this;
      }

      @java.lang.Override

      public int getValuesCount() {
        return instance.getValuesMap().size();
      }
      /**
       * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 2;</code>
       */
      @java.lang.Override

      public boolean containsValues(
          java.lang.String key) {
        java.lang.Class<?> keyClass = key.getClass();
        return instance.getValuesMap().containsKey(key);
      }

      public Builder clearValues() {
        copyOnWrite();
        instance.getMutableValuesMap().clear();
        return this;
      }
      /**
       * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 2;</code>
       */

      public Builder removeValues(
          java.lang.String key) {
        java.lang.Class<?> keyClass = key.getClass();
        copyOnWrite();
        instance.getMutableValuesMap().remove(key);
        return this;
      }
      /**
       * Use {@link #getValuesMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value> getValues() {
        return getValuesMap();
      }
      /**
       * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 2;</code>
       */
      @java.lang.Override
      public java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value> getValuesMap() {
        return java.util.Collections.unmodifiableMap(
            instance.getValuesMap());
      }
      /**
       * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 2;</code>
       */
      @java.lang.Override

      public /* nullable */
androidx.health.platform.client.proto.DataProto.Value getValuesOrDefault(
          java.lang.String key,
          /* nullable */
androidx.health.platform.client.proto.DataProto.Value defaultValue) {
        java.lang.Class<?> keyClass = key.getClass();
        java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value> map =
            instance.getValuesMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 2;</code>
       */
      @java.lang.Override

      public androidx.health.platform.client.proto.DataProto.Value getValuesOrThrow(
          java.lang.String key) {
        java.lang.Class<?> keyClass = key.getClass();
        java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value> map =
            instance.getValuesMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }
      /**
       * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 2;</code>
       */
      public Builder putValues(
          java.lang.String key,
          androidx.health.platform.client.proto.DataProto.Value value) {
        java.lang.Class<?> keyClass = key.getClass();
        java.lang.Class<?> valueClass = value.getClass();
        copyOnWrite();
        instance.getMutableValuesMap().put(key, value);
        return this;
      }
      /**
       * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 2;</code>
       */
      public Builder putAllValues(
          java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value> values) {
        copyOnWrite();
        instance.getMutableValuesMap().putAll(values);
        return this;
      }

      /**
       * <code>optional string uid = 3;</code>
       * @return Whether the uid field is set.
       */
      @java.lang.Override
      public boolean hasUid() {
        return instance.hasUid();
      }
      /**
       * <code>optional string uid = 3;</code>
       * @return The uid.
       */
      @java.lang.Override
      public java.lang.String getUid() {
        return instance.getUid();
      }
      /**
       * <code>optional string uid = 3;</code>
       * @return The bytes for uid.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getUidBytes() {
        return instance.getUidBytes();
      }
      /**
       * <code>optional string uid = 3;</code>
       * @param value The uid to set.
       * @return This builder for chaining.
       */
      public Builder setUid(
          java.lang.String value) {
        copyOnWrite();
        instance.setUid(value);
        return this;
      }
      /**
       * <code>optional string uid = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearUid() {
        copyOnWrite();
        instance.clearUid();
        return this;
      }
      /**
       * <code>optional string uid = 3;</code>
       * @param value The bytes for uid to set.
       * @return This builder for chaining.
       */
      public Builder setUidBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setUidBytes(value);
        return this;
      }

      /**
       * <code>optional string origin_series_uid = 4;</code>
       * @return Whether the originSeriesUid field is set.
       */
      @java.lang.Override
      public boolean hasOriginSeriesUid() {
        return instance.hasOriginSeriesUid();
      }
      /**
       * <code>optional string origin_series_uid = 4;</code>
       * @return The originSeriesUid.
       */
      @java.lang.Override
      public java.lang.String getOriginSeriesUid() {
        return instance.getOriginSeriesUid();
      }
      /**
       * <code>optional string origin_series_uid = 4;</code>
       * @return The bytes for originSeriesUid.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getOriginSeriesUidBytes() {
        return instance.getOriginSeriesUidBytes();
      }
      /**
       * <code>optional string origin_series_uid = 4;</code>
       * @param value The originSeriesUid to set.
       * @return This builder for chaining.
       */
      public Builder setOriginSeriesUid(
          java.lang.String value) {
        copyOnWrite();
        instance.setOriginSeriesUid(value);
        return this;
      }
      /**
       * <code>optional string origin_series_uid = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearOriginSeriesUid() {
        copyOnWrite();
        instance.clearOriginSeriesUid();
        return this;
      }
      /**
       * <code>optional string origin_series_uid = 4;</code>
       * @param value The bytes for originSeriesUid to set.
       * @return This builder for chaining.
       */
      public Builder setOriginSeriesUidBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setOriginSeriesUidBytes(value);
        return this;
      }

      /**
       * <code>optional .androidx.health.platform.client.proto.DataOrigin data_origin = 5;</code>
       */
      @java.lang.Override
      public boolean hasDataOrigin() {
        return instance.hasDataOrigin();
      }
      /**
       * <code>optional .androidx.health.platform.client.proto.DataOrigin data_origin = 5;</code>
       */
      @java.lang.Override
      public androidx.health.platform.client.proto.DataProto.DataOrigin getDataOrigin() {
        return instance.getDataOrigin();
      }
      /**
       * <code>optional .androidx.health.platform.client.proto.DataOrigin data_origin = 5;</code>
       */
      public Builder setDataOrigin(androidx.health.platform.client.proto.DataProto.DataOrigin value) {
        copyOnWrite();
        instance.setDataOrigin(value);
        return this;
        }
      /**
       * <code>optional .androidx.health.platform.client.proto.DataOrigin data_origin = 5;</code>
       */
      public Builder setDataOrigin(
          androidx.health.platform.client.proto.DataProto.DataOrigin.Builder builderForValue) {
        copyOnWrite();
        instance.setDataOrigin(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .androidx.health.platform.client.proto.DataOrigin data_origin = 5;</code>
       */
      public Builder mergeDataOrigin(androidx.health.platform.client.proto.DataProto.DataOrigin value) {
        copyOnWrite();
        instance.mergeDataOrigin(value);
        return this;
      }
      /**
       * <code>optional .androidx.health.platform.client.proto.DataOrigin data_origin = 5;</code>
       */
      public Builder clearDataOrigin() {  copyOnWrite();
        instance.clearDataOrigin();
        return this;
      }

      /**
       * <pre>
       * Unset if it is interval or series data, use start_zone_offset_seconds and
       * end_zone_offset_seconds instead.
       * </pre>
       *
       * <code>optional int32 zone_offset_seconds = 6;</code>
       * @return Whether the zoneOffsetSeconds field is set.
       */
      @java.lang.Override
      public boolean hasZoneOffsetSeconds() {
        return instance.hasZoneOffsetSeconds();
      }
      /**
       * <pre>
       * Unset if it is interval or series data, use start_zone_offset_seconds and
       * end_zone_offset_seconds instead.
       * </pre>
       *
       * <code>optional int32 zone_offset_seconds = 6;</code>
       * @return The zoneOffsetSeconds.
       */
      @java.lang.Override
      public int getZoneOffsetSeconds() {
        return instance.getZoneOffsetSeconds();
      }
      /**
       * <pre>
       * Unset if it is interval or series data, use start_zone_offset_seconds and
       * end_zone_offset_seconds instead.
       * </pre>
       *
       * <code>optional int32 zone_offset_seconds = 6;</code>
       * @param value The zoneOffsetSeconds to set.
       * @return This builder for chaining.
       */
      public Builder setZoneOffsetSeconds(int value) {
        copyOnWrite();
        instance.setZoneOffsetSeconds(value);
        return this;
      }
      /**
       * <pre>
       * Unset if it is interval or series data, use start_zone_offset_seconds and
       * end_zone_offset_seconds instead.
       * </pre>
       *
       * <code>optional int32 zone_offset_seconds = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearZoneOffsetSeconds() {
        copyOnWrite();
        instance.clearZoneOffsetSeconds();
        return this;
      }

      /**
       * <code>optional int64 update_time_millis = 7;</code>
       * @return Whether the updateTimeMillis field is set.
       */
      @java.lang.Override
      public boolean hasUpdateTimeMillis() {
        return instance.hasUpdateTimeMillis();
      }
      /**
       * <code>optional int64 update_time_millis = 7;</code>
       * @return The updateTimeMillis.
       */
      @java.lang.Override
      public long getUpdateTimeMillis() {
        return instance.getUpdateTimeMillis();
      }
      /**
       * <code>optional int64 update_time_millis = 7;</code>
       * @param value The updateTimeMillis to set.
       * @return This builder for chaining.
       */
      public Builder setUpdateTimeMillis(long value) {
        copyOnWrite();
        instance.setUpdateTimeMillis(value);
        return this;
      }
      /**
       * <code>optional int64 update_time_millis = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearUpdateTimeMillis() {
        copyOnWrite();
        instance.clearUpdateTimeMillis();
        return this;
      }

      /**
       * <pre>
       * Unset if interval start/end millis are used.
       * </pre>
       *
       * <code>optional int64 instant_time_millis = 8;</code>
       * @return Whether the instantTimeMillis field is set.
       */
      @java.lang.Override
      public boolean hasInstantTimeMillis() {
        return instance.hasInstantTimeMillis();
      }
      /**
       * <pre>
       * Unset if interval start/end millis are used.
       * </pre>
       *
       * <code>optional int64 instant_time_millis = 8;</code>
       * @return The instantTimeMillis.
       */
      @java.lang.Override
      public long getInstantTimeMillis() {
        return instance.getInstantTimeMillis();
      }
      /**
       * <pre>
       * Unset if interval start/end millis are used.
       * </pre>
       *
       * <code>optional int64 instant_time_millis = 8;</code>
       * @param value The instantTimeMillis to set.
       * @return This builder for chaining.
       */
      public Builder setInstantTimeMillis(long value) {
        copyOnWrite();
        instance.setInstantTimeMillis(value);
        return this;
      }
      /**
       * <pre>
       * Unset if interval start/end millis are used.
       * </pre>
       *
       * <code>optional int64 instant_time_millis = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearInstantTimeMillis() {
        copyOnWrite();
        instance.clearInstantTimeMillis();
        return this;
      }

      /**
       * <code>optional int64 start_time_millis = 9;</code>
       * @return Whether the startTimeMillis field is set.
       */
      @java.lang.Override
      public boolean hasStartTimeMillis() {
        return instance.hasStartTimeMillis();
      }
      /**
       * <code>optional int64 start_time_millis = 9;</code>
       * @return The startTimeMillis.
       */
      @java.lang.Override
      public long getStartTimeMillis() {
        return instance.getStartTimeMillis();
      }
      /**
       * <code>optional int64 start_time_millis = 9;</code>
       * @param value The startTimeMillis to set.
       * @return This builder for chaining.
       */
      public Builder setStartTimeMillis(long value) {
        copyOnWrite();
        instance.setStartTimeMillis(value);
        return this;
      }
      /**
       * <code>optional int64 start_time_millis = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearStartTimeMillis() {
        copyOnWrite();
        instance.clearStartTimeMillis();
        return this;
      }

      /**
       * <code>optional int64 end_time_millis = 10;</code>
       * @return Whether the endTimeMillis field is set.
       */
      @java.lang.Override
      public boolean hasEndTimeMillis() {
        return instance.hasEndTimeMillis();
      }
      /**
       * <code>optional int64 end_time_millis = 10;</code>
       * @return The endTimeMillis.
       */
      @java.lang.Override
      public long getEndTimeMillis() {
        return instance.getEndTimeMillis();
      }
      /**
       * <code>optional int64 end_time_millis = 10;</code>
       * @param value The endTimeMillis to set.
       * @return This builder for chaining.
       */
      public Builder setEndTimeMillis(long value) {
        copyOnWrite();
        instance.setEndTimeMillis(value);
        return this;
      }
      /**
       * <code>optional int64 end_time_millis = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearEndTimeMillis() {
        copyOnWrite();
        instance.clearEndTimeMillis();
        return this;
      }

      /**
       * <code>optional string client_id = 11;</code>
       * @return Whether the clientId field is set.
       */
      @java.lang.Override
      public boolean hasClientId() {
        return instance.hasClientId();
      }
      /**
       * <code>optional string client_id = 11;</code>
       * @return The clientId.
       */
      @java.lang.Override
      public java.lang.String getClientId() {
        return instance.getClientId();
      }
      /**
       * <code>optional string client_id = 11;</code>
       * @return The bytes for clientId.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getClientIdBytes() {
        return instance.getClientIdBytes();
      }
      /**
       * <code>optional string client_id = 11;</code>
       * @param value The clientId to set.
       * @return This builder for chaining.
       */
      public Builder setClientId(
          java.lang.String value) {
        copyOnWrite();
        instance.setClientId(value);
        return this;
      }
      /**
       * <code>optional string client_id = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientId() {
        copyOnWrite();
        instance.clearClientId();
        return this;
      }
      /**
       * <code>optional string client_id = 11;</code>
       * @param value The bytes for clientId to set.
       * @return This builder for chaining.
       */
      public Builder setClientIdBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setClientIdBytes(value);
        return this;
      }

      /**
       * <code>optional int64 client_version = 12;</code>
       * @return Whether the clientVersion field is set.
       */
      @java.lang.Override
      public boolean hasClientVersion() {
        return instance.hasClientVersion();
      }
      /**
       * <code>optional int64 client_version = 12;</code>
       * @return The clientVersion.
       */
      @java.lang.Override
      public long getClientVersion() {
        return instance.getClientVersion();
      }
      /**
       * <code>optional int64 client_version = 12;</code>
       * @param value The clientVersion to set.
       * @return This builder for chaining.
       */
      public Builder setClientVersion(long value) {
        copyOnWrite();
        instance.setClientVersion(value);
        return this;
      }
      /**
       * <code>optional int64 client_version = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientVersion() {
        copyOnWrite();
        instance.clearClientVersion();
        return this;
      }

      /**
       * <code>optional .androidx.health.platform.client.proto.Device device = 13;</code>
       */
      @java.lang.Override
      public boolean hasDevice() {
        return instance.hasDevice();
      }
      /**
       * <code>optional .androidx.health.platform.client.proto.Device device = 13;</code>
       */
      @java.lang.Override
      public androidx.health.platform.client.proto.DataProto.Device getDevice() {
        return instance.getDevice();
      }
      /**
       * <code>optional .androidx.health.platform.client.proto.Device device = 13;</code>
       */
      public Builder setDevice(androidx.health.platform.client.proto.DataProto.Device value) {
        copyOnWrite();
        instance.setDevice(value);
        return this;
        }
      /**
       * <code>optional .androidx.health.platform.client.proto.Device device = 13;</code>
       */
      public Builder setDevice(
          androidx.health.platform.client.proto.DataProto.Device.Builder builderForValue) {
        copyOnWrite();
        instance.setDevice(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .androidx.health.platform.client.proto.Device device = 13;</code>
       */
      public Builder mergeDevice(androidx.health.platform.client.proto.DataProto.Device value) {
        copyOnWrite();
        instance.mergeDevice(value);
        return this;
      }
      /**
       * <code>optional .androidx.health.platform.client.proto.Device device = 13;</code>
       */
      public Builder clearDevice() {  copyOnWrite();
        instance.clearDevice();
        return this;
      }

      /**
       * <code>optional string origin_sample_uid = 14;</code>
       * @return Whether the originSampleUid field is set.
       */
      @java.lang.Override
      public boolean hasOriginSampleUid() {
        return instance.hasOriginSampleUid();
      }
      /**
       * <code>optional string origin_sample_uid = 14;</code>
       * @return The originSampleUid.
       */
      @java.lang.Override
      public java.lang.String getOriginSampleUid() {
        return instance.getOriginSampleUid();
      }
      /**
       * <code>optional string origin_sample_uid = 14;</code>
       * @return The bytes for originSampleUid.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getOriginSampleUidBytes() {
        return instance.getOriginSampleUidBytes();
      }
      /**
       * <code>optional string origin_sample_uid = 14;</code>
       * @param value The originSampleUid to set.
       * @return This builder for chaining.
       */
      public Builder setOriginSampleUid(
          java.lang.String value) {
        copyOnWrite();
        instance.setOriginSampleUid(value);
        return this;
      }
      /**
       * <code>optional string origin_sample_uid = 14;</code>
       * @return This builder for chaining.
       */
      public Builder clearOriginSampleUid() {
        copyOnWrite();
        instance.clearOriginSampleUid();
        return this;
      }
      /**
       * <code>optional string origin_sample_uid = 14;</code>
       * @param value The bytes for originSampleUid to set.
       * @return This builder for chaining.
       */
      public Builder setOriginSampleUidBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setOriginSampleUidBytes(value);
        return this;
      }

      /**
       * <code>repeated .androidx.health.platform.client.proto.SeriesValue series_values = 15;</code>
       */
      @java.lang.Override
      public java.util.List<androidx.health.platform.client.proto.DataProto.SeriesValue> getSeriesValuesList() {
        return java.util.Collections.unmodifiableList(
            instance.getSeriesValuesList());
      }
      /**
       * <code>repeated .androidx.health.platform.client.proto.SeriesValue series_values = 15;</code>
       */
      @java.lang.Override
      public int getSeriesValuesCount() {
        return instance.getSeriesValuesCount();
      }/**
       * <code>repeated .androidx.health.platform.client.proto.SeriesValue series_values = 15;</code>
       */
      @java.lang.Override
      public androidx.health.platform.client.proto.DataProto.SeriesValue getSeriesValues(int index) {
        return instance.getSeriesValues(index);
      }
      /**
       * <code>repeated .androidx.health.platform.client.proto.SeriesValue series_values = 15;</code>
       */
      public Builder setSeriesValues(
          int index, androidx.health.platform.client.proto.DataProto.SeriesValue value) {
        copyOnWrite();
        instance.setSeriesValues(index, value);
        return this;
      }
      /**
       * <code>repeated .androidx.health.platform.client.proto.SeriesValue series_values = 15;</code>
       */
      public Builder setSeriesValues(
          int index, androidx.health.platform.client.proto.DataProto.SeriesValue.Builder builderForValue) {
        copyOnWrite();
        instance.setSeriesValues(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .androidx.health.platform.client.proto.SeriesValue series_values = 15;</code>
       */
      public Builder addSeriesValues(androidx.health.platform.client.proto.DataProto.SeriesValue value) {
        copyOnWrite();
        instance.addSeriesValues(value);
        return this;
      }
      /**
       * <code>repeated .androidx.health.platform.client.proto.SeriesValue series_values = 15;</code>
       */
      public Builder addSeriesValues(
          int index, androidx.health.platform.client.proto.DataProto.SeriesValue value) {
        copyOnWrite();
        instance.addSeriesValues(index, value);
        return this;
      }
      /**
       * <code>repeated .androidx.health.platform.client.proto.SeriesValue series_values = 15;</code>
       */
      public Builder addSeriesValues(
          androidx.health.platform.client.proto.DataProto.SeriesValue.Builder builderForValue) {
        copyOnWrite();
        instance.addSeriesValues(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .androidx.health.platform.client.proto.SeriesValue series_values = 15;</code>
       */
      public Builder addSeriesValues(
          int index, androidx.health.platform.client.proto.DataProto.SeriesValue.Builder builderForValue) {
        copyOnWrite();
        instance.addSeriesValues(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .androidx.health.platform.client.proto.SeriesValue series_values = 15;</code>
       */
      public Builder addAllSeriesValues(
          java.lang.Iterable<? extends androidx.health.platform.client.proto.DataProto.SeriesValue> values) {
        copyOnWrite();
        instance.addAllSeriesValues(values);
        return this;
      }
      /**
       * <code>repeated .androidx.health.platform.client.proto.SeriesValue series_values = 15;</code>
       */
      public Builder clearSeriesValues() {
        copyOnWrite();
        instance.clearSeriesValues();
        return this;
      }
      /**
       * <code>repeated .androidx.health.platform.client.proto.SeriesValue series_values = 15;</code>
       */
      public Builder removeSeriesValues(int index) {
        copyOnWrite();
        instance.removeSeriesValues(index);
        return this;
      }

      /**
       * <code>optional .androidx.health.platform.client.proto.AggregatedValue min = 16;</code>
       */
      @java.lang.Override
      public boolean hasMin() {
        return instance.hasMin();
      }
      /**
       * <code>optional .androidx.health.platform.client.proto.AggregatedValue min = 16;</code>
       */
      @java.lang.Override
      public androidx.health.platform.client.proto.DataProto.AggregatedValue getMin() {
        return instance.getMin();
      }
      /**
       * <code>optional .androidx.health.platform.client.proto.AggregatedValue min = 16;</code>
       */
      public Builder setMin(androidx.health.platform.client.proto.DataProto.AggregatedValue value) {
        copyOnWrite();
        instance.setMin(value);
        return this;
        }
      /**
       * <code>optional .androidx.health.platform.client.proto.AggregatedValue min = 16;</code>
       */
      public Builder setMin(
          androidx.health.platform.client.proto.DataProto.AggregatedValue.Builder builderForValue) {
        copyOnWrite();
        instance.setMin(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .androidx.health.platform.client.proto.AggregatedValue min = 16;</code>
       */
      public Builder mergeMin(androidx.health.platform.client.proto.DataProto.AggregatedValue value) {
        copyOnWrite();
        instance.mergeMin(value);
        return this;
      }
      /**
       * <code>optional .androidx.health.platform.client.proto.AggregatedValue min = 16;</code>
       */
      public Builder clearMin() {  copyOnWrite();
        instance.clearMin();
        return this;
      }

      /**
       * <code>optional .androidx.health.platform.client.proto.AggregatedValue max = 17;</code>
       */
      @java.lang.Override
      public boolean hasMax() {
        return instance.hasMax();
      }
      /**
       * <code>optional .androidx.health.platform.client.proto.AggregatedValue max = 17;</code>
       */
      @java.lang.Override
      public androidx.health.platform.client.proto.DataProto.AggregatedValue getMax() {
        return instance.getMax();
      }
      /**
       * <code>optional .androidx.health.platform.client.proto.AggregatedValue max = 17;</code>
       */
      public Builder setMax(androidx.health.platform.client.proto.DataProto.AggregatedValue value) {
        copyOnWrite();
        instance.setMax(value);
        return this;
        }
      /**
       * <code>optional .androidx.health.platform.client.proto.AggregatedValue max = 17;</code>
       */
      public Builder setMax(
          androidx.health.platform.client.proto.DataProto.AggregatedValue.Builder builderForValue) {
        copyOnWrite();
        instance.setMax(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .androidx.health.platform.client.proto.AggregatedValue max = 17;</code>
       */
      public Builder mergeMax(androidx.health.platform.client.proto.DataProto.AggregatedValue value) {
        copyOnWrite();
        instance.mergeMax(value);
        return this;
      }
      /**
       * <code>optional .androidx.health.platform.client.proto.AggregatedValue max = 17;</code>
       */
      public Builder clearMax() {  copyOnWrite();
        instance.clearMax();
        return this;
      }

      /**
       * <code>optional .androidx.health.platform.client.proto.AggregatedValue avg = 18;</code>
       */
      @java.lang.Override
      public boolean hasAvg() {
        return instance.hasAvg();
      }
      /**
       * <code>optional .androidx.health.platform.client.proto.AggregatedValue avg = 18;</code>
       */
      @java.lang.Override
      public androidx.health.platform.client.proto.DataProto.AggregatedValue getAvg() {
        return instance.getAvg();
      }
      /**
       * <code>optional .androidx.health.platform.client.proto.AggregatedValue avg = 18;</code>
       */
      public Builder setAvg(androidx.health.platform.client.proto.DataProto.AggregatedValue value) {
        copyOnWrite();
        instance.setAvg(value);
        return this;
        }
      /**
       * <code>optional .androidx.health.platform.client.proto.AggregatedValue avg = 18;</code>
       */
      public Builder setAvg(
          androidx.health.platform.client.proto.DataProto.AggregatedValue.Builder builderForValue) {
        copyOnWrite();
        instance.setAvg(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .androidx.health.platform.client.proto.AggregatedValue avg = 18;</code>
       */
      public Builder mergeAvg(androidx.health.platform.client.proto.DataProto.AggregatedValue value) {
        copyOnWrite();
        instance.mergeAvg(value);
        return this;
      }
      /**
       * <code>optional .androidx.health.platform.client.proto.AggregatedValue avg = 18;</code>
       */
      public Builder clearAvg() {  copyOnWrite();
        instance.clearAvg();
        return this;
      }

      /**
       * <code>optional int32 start_zone_offset_seconds = 19;</code>
       * @return Whether the startZoneOffsetSeconds field is set.
       */
      @java.lang.Override
      public boolean hasStartZoneOffsetSeconds() {
        return instance.hasStartZoneOffsetSeconds();
      }
      /**
       * <code>optional int32 start_zone_offset_seconds = 19;</code>
       * @return The startZoneOffsetSeconds.
       */
      @java.lang.Override
      public int getStartZoneOffsetSeconds() {
        return instance.getStartZoneOffsetSeconds();
      }
      /**
       * <code>optional int32 start_zone_offset_seconds = 19;</code>
       * @param value The startZoneOffsetSeconds to set.
       * @return This builder for chaining.
       */
      public Builder setStartZoneOffsetSeconds(int value) {
        copyOnWrite();
        instance.setStartZoneOffsetSeconds(value);
        return this;
      }
      /**
       * <code>optional int32 start_zone_offset_seconds = 19;</code>
       * @return This builder for chaining.
       */
      public Builder clearStartZoneOffsetSeconds() {
        copyOnWrite();
        instance.clearStartZoneOffsetSeconds();
        return this;
      }

      /**
       * <code>optional int32 end_zone_offset_seconds = 20;</code>
       * @return Whether the endZoneOffsetSeconds field is set.
       */
      @java.lang.Override
      public boolean hasEndZoneOffsetSeconds() {
        return instance.hasEndZoneOffsetSeconds();
      }
      /**
       * <code>optional int32 end_zone_offset_seconds = 20;</code>
       * @return The endZoneOffsetSeconds.
       */
      @java.lang.Override
      public int getEndZoneOffsetSeconds() {
        return instance.getEndZoneOffsetSeconds();
      }
      /**
       * <code>optional int32 end_zone_offset_seconds = 20;</code>
       * @param value The endZoneOffsetSeconds to set.
       * @return This builder for chaining.
       */
      public Builder setEndZoneOffsetSeconds(int value) {
        copyOnWrite();
        instance.setEndZoneOffsetSeconds(value);
        return this;
      }
      /**
       * <code>optional int32 end_zone_offset_seconds = 20;</code>
       * @return This builder for chaining.
       */
      public Builder clearEndZoneOffsetSeconds() {
        copyOnWrite();
        instance.clearEndZoneOffsetSeconds();
        return this;
      }

      @java.lang.Override

      public int getSubTypeDataListsCount() {
        return instance.getSubTypeDataListsMap().size();
      }
      /**
       * <code>map&lt;string, .androidx.health.platform.client.proto.DataPoint.SubTypeDataList&gt; sub_type_data_lists = 22;</code>
       */
      @java.lang.Override

      public boolean containsSubTypeDataLists(
          java.lang.String key) {
        java.lang.Class<?> keyClass = key.getClass();
        return instance.getSubTypeDataListsMap().containsKey(key);
      }

      public Builder clearSubTypeDataLists() {
        copyOnWrite();
        instance.getMutableSubTypeDataListsMap().clear();
        return this;
      }
      /**
       * <code>map&lt;string, .androidx.health.platform.client.proto.DataPoint.SubTypeDataList&gt; sub_type_data_lists = 22;</code>
       */

      public Builder removeSubTypeDataLists(
          java.lang.String key) {
        java.lang.Class<?> keyClass = key.getClass();
        copyOnWrite();
        instance.getMutableSubTypeDataListsMap().remove(key);
        return this;
      }
      /**
       * Use {@link #getSubTypeDataListsMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList> getSubTypeDataLists() {
        return getSubTypeDataListsMap();
      }
      /**
       * <code>map&lt;string, .androidx.health.platform.client.proto.DataPoint.SubTypeDataList&gt; sub_type_data_lists = 22;</code>
       */
      @java.lang.Override
      public java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList> getSubTypeDataListsMap() {
        return java.util.Collections.unmodifiableMap(
            instance.getSubTypeDataListsMap());
      }
      /**
       * <code>map&lt;string, .androidx.health.platform.client.proto.DataPoint.SubTypeDataList&gt; sub_type_data_lists = 22;</code>
       */
      @java.lang.Override

      public /* nullable */
androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList getSubTypeDataListsOrDefault(
          java.lang.String key,
          /* nullable */
androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList defaultValue) {
        java.lang.Class<?> keyClass = key.getClass();
        java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList> map =
            instance.getSubTypeDataListsMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <code>map&lt;string, .androidx.health.platform.client.proto.DataPoint.SubTypeDataList&gt; sub_type_data_lists = 22;</code>
       */
      @java.lang.Override

      public androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList getSubTypeDataListsOrThrow(
          java.lang.String key) {
        java.lang.Class<?> keyClass = key.getClass();
        java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList> map =
            instance.getSubTypeDataListsMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }
      /**
       * <code>map&lt;string, .androidx.health.platform.client.proto.DataPoint.SubTypeDataList&gt; sub_type_data_lists = 22;</code>
       */
      public Builder putSubTypeDataLists(
          java.lang.String key,
          androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList value) {
        java.lang.Class<?> keyClass = key.getClass();
        java.lang.Class<?> valueClass = value.getClass();
        copyOnWrite();
        instance.getMutableSubTypeDataListsMap().put(key, value);
        return this;
      }
      /**
       * <code>map&lt;string, .androidx.health.platform.client.proto.DataPoint.SubTypeDataList&gt; sub_type_data_lists = 22;</code>
       */
      public Builder putAllSubTypeDataLists(
          java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.DataPoint.SubTypeDataList> values) {
        copyOnWrite();
        instance.getMutableSubTypeDataListsMap().putAll(values);
        return this;
      }

      /**
       * <code>optional int32 recording_method = 23;</code>
       * @return Whether the recordingMethod field is set.
       */
      @java.lang.Override
      public boolean hasRecordingMethod() {
        return instance.hasRecordingMethod();
      }
      /**
       * <code>optional int32 recording_method = 23;</code>
       * @return The recordingMethod.
       */
      @java.lang.Override
      public int getRecordingMethod() {
        return instance.getRecordingMethod();
      }
      /**
       * <code>optional int32 recording_method = 23;</code>
       * @param value The recordingMethod to set.
       * @return This builder for chaining.
       */
      public Builder setRecordingMethod(int value) {
        copyOnWrite();
        instance.setRecordingMethod(value);
        return this;
      }
      /**
       * <code>optional int32 recording_method = 23;</code>
       * @return This builder for chaining.
       */
      public Builder clearRecordingMethod() {
        copyOnWrite();
        instance.clearRecordingMethod();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.health.platform.client.proto.DataPoint)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.health.platform.client.proto.DataProto.DataPoint();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "dataType_",
              "values_",
              ValuesDefaultEntryHolder.defaultEntry,
              "uid_",
              "originSeriesUid_",
              "dataOrigin_",
              "zoneOffsetSeconds_",
              "updateTimeMillis_",
              "instantTimeMillis_",
              "startTimeMillis_",
              "endTimeMillis_",
              "clientId_",
              "clientVersion_",
              "device_",
              "originSampleUid_",
              "seriesValues_",
              androidx.health.platform.client.proto.DataProto.SeriesValue.class,
              "min_",
              "max_",
              "avg_",
              "startZoneOffsetSeconds_",
              "endZoneOffsetSeconds_",
              "subTypeDataLists_",
              SubTypeDataListsDefaultEntryHolder.defaultEntry,
              "recordingMethod_",
            };
            java.lang.String info =
                "\u0001\u0016\u0000\u0001\u0001\u0017\u0016\u0002\u0001\u0000\u0001\u1009\u0000\u0002" +
                "2\u0003\u1008\u0001\u0004\u1008\u0002\u0005\u1009\u0003\u0006\u1004\u0004\u0007\u1002" +
                "\u0005\b\u1002\u0006\t\u1002\u0007\n\u1002\b\u000b\u1008\t\f\u1002\n\r\u1009\u000b" +
                "\u000e\u1008\f\u000f\u001b\u0010\u1009\r\u0011\u1009\u000e\u0012\u1009\u000f\u0013" +
                "\u1004\u0010\u0014\u1004\u0011\u00162\u0017\u1004\u0012";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.health.platform.client.proto.DataProto.DataPoint> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.health.platform.client.proto.DataProto.DataPoint.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.health.platform.client.proto.DataProto.DataPoint>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.health.platform.client.proto.DataPoint)
    private static final androidx.health.platform.client.proto.DataProto.DataPoint DEFAULT_INSTANCE;
    static {
      DataPoint defaultInstance = new DataPoint();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        DataPoint.class, defaultInstance);
    }

    public static androidx.health.platform.client.proto.DataProto.DataPoint getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<DataPoint> PARSER;

    public static com.google.protobuf.Parser<DataPoint> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface AggregatedValueOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.health.platform.client.proto.AggregatedValue)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
     */
    int getValuesCount();
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
     */
    boolean containsValues(
        java.lang.String key);
    /**
     * Use {@link #getValuesMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value>
    getValues();
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
     */
    java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value>
    getValuesMap();
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
     */

    /* nullable */
androidx.health.platform.client.proto.DataProto.Value getValuesOrDefault(
        java.lang.String key,
        /* nullable */
androidx.health.platform.client.proto.DataProto.Value defaultValue);
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
     */

    androidx.health.platform.client.proto.DataProto.Value getValuesOrThrow(
        java.lang.String key);
  }
  /**
   * Protobuf type {@code androidx.health.platform.client.proto.AggregatedValue}
   */
  public  static final class AggregatedValue extends
      com.google.protobuf.GeneratedMessageLite<
          AggregatedValue, AggregatedValue.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.health.platform.client.proto.AggregatedValue)
      AggregatedValueOrBuilder {
    private AggregatedValue() {
    }
    public static final int VALUES_FIELD_NUMBER = 1;
    private static final class ValuesDefaultEntryHolder {
      static final com.google.protobuf.MapEntryLite<
          java.lang.String, androidx.health.platform.client.proto.DataProto.Value> defaultEntry =
              com.google.protobuf.MapEntryLite
              .<java.lang.String, androidx.health.platform.client.proto.DataProto.Value>newDefaultInstance(
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.MESSAGE,
                  androidx.health.platform.client.proto.DataProto.Value.getDefaultInstance());
    }
    private com.google.protobuf.MapFieldLite<
        java.lang.String, androidx.health.platform.client.proto.DataProto.Value> values_ =
            com.google.protobuf.MapFieldLite.emptyMapField();
    private com.google.protobuf.MapFieldLite<java.lang.String, androidx.health.platform.client.proto.DataProto.Value>
    internalGetValues() {
      return values_;
    }
    private com.google.protobuf.MapFieldLite<java.lang.String, androidx.health.platform.client.proto.DataProto.Value>
    internalGetMutableValues() {
      if (!values_.isMutable()) {
        values_ = values_.mutableCopy();
      }
      return values_;
    }
    @java.lang.Override

    public int getValuesCount() {
      return internalGetValues().size();
    }
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
     */
    @java.lang.Override

    public boolean containsValues(
        java.lang.String key) {
      java.lang.Class<?> keyClass = key.getClass();
      return internalGetValues().containsKey(key);
    }
    /**
     * Use {@link #getValuesMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value> getValues() {
      return getValuesMap();
    }
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
     */
    @java.lang.Override

    public java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value> getValuesMap() {
      return java.util.Collections.unmodifiableMap(
          internalGetValues());
    }
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
     */
    @java.lang.Override

    public /* nullable */
androidx.health.platform.client.proto.DataProto.Value getValuesOrDefault(
        java.lang.String key,
        /* nullable */
androidx.health.platform.client.proto.DataProto.Value defaultValue) {
      java.lang.Class<?> keyClass = key.getClass();
      java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value> map =
          internalGetValues();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
     */
    @java.lang.Override

    public androidx.health.platform.client.proto.DataProto.Value getValuesOrThrow(
        java.lang.String key) {
      java.lang.Class<?> keyClass = key.getClass();
      java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value> map =
          internalGetValues();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }
    /**
     * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
     */
    private java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value>
    getMutableValuesMap() {
      return internalGetMutableValues();
    }

    public static androidx.health.platform.client.proto.DataProto.AggregatedValue parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.health.platform.client.proto.DataProto.AggregatedValue parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.AggregatedValue parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.health.platform.client.proto.DataProto.AggregatedValue parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.AggregatedValue parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.health.platform.client.proto.DataProto.AggregatedValue parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.AggregatedValue parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.health.platform.client.proto.DataProto.AggregatedValue parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.AggregatedValue parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.health.platform.client.proto.DataProto.AggregatedValue parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.AggregatedValue parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.health.platform.client.proto.DataProto.AggregatedValue parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.health.platform.client.proto.DataProto.AggregatedValue prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code androidx.health.platform.client.proto.AggregatedValue}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.health.platform.client.proto.DataProto.AggregatedValue, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.health.platform.client.proto.AggregatedValue)
        androidx.health.platform.client.proto.DataProto.AggregatedValueOrBuilder {
      // Construct using androidx.health.platform.client.proto.DataProto.AggregatedValue.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      @java.lang.Override

      public int getValuesCount() {
        return instance.getValuesMap().size();
      }
      /**
       * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
       */
      @java.lang.Override

      public boolean containsValues(
          java.lang.String key) {
        java.lang.Class<?> keyClass = key.getClass();
        return instance.getValuesMap().containsKey(key);
      }

      public Builder clearValues() {
        copyOnWrite();
        instance.getMutableValuesMap().clear();
        return this;
      }
      /**
       * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
       */

      public Builder removeValues(
          java.lang.String key) {
        java.lang.Class<?> keyClass = key.getClass();
        copyOnWrite();
        instance.getMutableValuesMap().remove(key);
        return this;
      }
      /**
       * Use {@link #getValuesMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value> getValues() {
        return getValuesMap();
      }
      /**
       * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
       */
      @java.lang.Override
      public java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value> getValuesMap() {
        return java.util.Collections.unmodifiableMap(
            instance.getValuesMap());
      }
      /**
       * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
       */
      @java.lang.Override

      public /* nullable */
androidx.health.platform.client.proto.DataProto.Value getValuesOrDefault(
          java.lang.String key,
          /* nullable */
androidx.health.platform.client.proto.DataProto.Value defaultValue) {
        java.lang.Class<?> keyClass = key.getClass();
        java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value> map =
            instance.getValuesMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
       */
      @java.lang.Override

      public androidx.health.platform.client.proto.DataProto.Value getValuesOrThrow(
          java.lang.String key) {
        java.lang.Class<?> keyClass = key.getClass();
        java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value> map =
            instance.getValuesMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }
      /**
       * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
       */
      public Builder putValues(
          java.lang.String key,
          androidx.health.platform.client.proto.DataProto.Value value) {
        java.lang.Class<?> keyClass = key.getClass();
        java.lang.Class<?> valueClass = value.getClass();
        copyOnWrite();
        instance.getMutableValuesMap().put(key, value);
        return this;
      }
      /**
       * <code>map&lt;string, .androidx.health.platform.client.proto.Value&gt; values = 1;</code>
       */
      public Builder putAllValues(
          java.util.Map<java.lang.String, androidx.health.platform.client.proto.DataProto.Value> values) {
        copyOnWrite();
        instance.getMutableValuesMap().putAll(values);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.health.platform.client.proto.AggregatedValue)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.health.platform.client.proto.DataProto.AggregatedValue();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "values_",
              ValuesDefaultEntryHolder.defaultEntry,
            };
            java.lang.String info =
                "\u0001\u0001\u0000\u0000\u0001\u0001\u0001\u0001\u0000\u0000\u00012";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.health.platform.client.proto.DataProto.AggregatedValue> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.health.platform.client.proto.DataProto.AggregatedValue.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.health.platform.client.proto.DataProto.AggregatedValue>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.health.platform.client.proto.AggregatedValue)
    private static final androidx.health.platform.client.proto.DataProto.AggregatedValue DEFAULT_INSTANCE;
    static {
      AggregatedValue defaultInstance = new AggregatedValue();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        AggregatedValue.class, defaultInstance);
    }

    public static androidx.health.platform.client.proto.DataProto.AggregatedValue getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<AggregatedValue> PARSER;

    public static com.google.protobuf.Parser<AggregatedValue> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface AggregateDataRowOrBuilder extends
      // @@protoc_insertion_point(interface_extends:androidx.health.platform.client.proto.AggregateDataRow)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>optional int64 start_time_epoch_ms = 1;</code>
     * @return Whether the startTimeEpochMs field is set.
     */
    boolean hasStartTimeEpochMs();
    /**
     * <code>optional int64 start_time_epoch_ms = 1;</code>
     * @return The startTimeEpochMs.
     */
    long getStartTimeEpochMs();

    /**
     * <code>optional int64 end_time_epoch_ms = 2;</code>
     * @return Whether the endTimeEpochMs field is set.
     */
    boolean hasEndTimeEpochMs();
    /**
     * <code>optional int64 end_time_epoch_ms = 2;</code>
     * @return The endTimeEpochMs.
     */
    long getEndTimeEpochMs();

    /**
     * <code>optional string start_local_date_time = 3;</code>
     * @return Whether the startLocalDateTime field is set.
     */
    boolean hasStartLocalDateTime();
    /**
     * <code>optional string start_local_date_time = 3;</code>
     * @return The startLocalDateTime.
     */
    java.lang.String getStartLocalDateTime();
    /**
     * <code>optional string start_local_date_time = 3;</code>
     * @return The bytes for startLocalDateTime.
     */
    com.google.protobuf.ByteString
        getStartLocalDateTimeBytes();

    /**
     * <code>optional string end_local_date_time = 4;</code>
     * @return Whether the endLocalDateTime field is set.
     */
    boolean hasEndLocalDateTime();
    /**
     * <code>optional string end_local_date_time = 4;</code>
     * @return The endLocalDateTime.
     */
    java.lang.String getEndLocalDateTime();
    /**
     * <code>optional string end_local_date_time = 4;</code>
     * @return The bytes for endLocalDateTime.
     */
    com.google.protobuf.ByteString
        getEndLocalDateTimeBytes();

    /**
     * <code>optional int32 zone_offset_seconds = 5;</code>
     * @return Whether the zoneOffsetSeconds field is set.
     */
    boolean hasZoneOffsetSeconds();
    /**
     * <code>optional int32 zone_offset_seconds = 5;</code>
     * @return The zoneOffsetSeconds.
     */
    int getZoneOffsetSeconds();

    /**
     * <pre>
     * Key by metric spec {type}_{field}_{agg}
     * </pre>
     *
     * <code>map&lt;string, double&gt; double_values = 6;</code>
     */
    int getDoubleValuesCount();
    /**
     * <pre>
     * Key by metric spec {type}_{field}_{agg}
     * </pre>
     *
     * <code>map&lt;string, double&gt; double_values = 6;</code>
     */
    boolean containsDoubleValues(
        java.lang.String key);
    /**
     * Use {@link #getDoubleValuesMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, java.lang.Double>
    getDoubleValues();
    /**
     * <pre>
     * Key by metric spec {type}_{field}_{agg}
     * </pre>
     *
     * <code>map&lt;string, double&gt; double_values = 6;</code>
     */
    java.util.Map<java.lang.String, java.lang.Double>
    getDoubleValuesMap();
    /**
     * <pre>
     * Key by metric spec {type}_{field}_{agg}
     * </pre>
     *
     * <code>map&lt;string, double&gt; double_values = 6;</code>
     */

    double getDoubleValuesOrDefault(
        java.lang.String key,
        double defaultValue);
    /**
     * <pre>
     * Key by metric spec {type}_{field}_{agg}
     * </pre>
     *
     * <code>map&lt;string, double&gt; double_values = 6;</code>
     */

    double getDoubleValuesOrThrow(
        java.lang.String key);

    /**
     * <code>map&lt;string, int64&gt; long_values = 7;</code>
     */
    int getLongValuesCount();
    /**
     * <code>map&lt;string, int64&gt; long_values = 7;</code>
     */
    boolean containsLongValues(
        java.lang.String key);
    /**
     * Use {@link #getLongValuesMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, java.lang.Long>
    getLongValues();
    /**
     * <code>map&lt;string, int64&gt; long_values = 7;</code>
     */
    java.util.Map<java.lang.String, java.lang.Long>
    getLongValuesMap();
    /**
     * <code>map&lt;string, int64&gt; long_values = 7;</code>
     */

    long getLongValuesOrDefault(
        java.lang.String key,
        long defaultValue);
    /**
     * <code>map&lt;string, int64&gt; long_values = 7;</code>
     */

    long getLongValuesOrThrow(
        java.lang.String key);

    /**
     * <code>repeated .androidx.health.platform.client.proto.DataOrigin data_origins = 8;</code>
     */
    java.util.List<androidx.health.platform.client.proto.DataProto.DataOrigin> 
        getDataOriginsList();
    /**
     * <code>repeated .androidx.health.platform.client.proto.DataOrigin data_origins = 8;</code>
     */
    androidx.health.platform.client.proto.DataProto.DataOrigin getDataOrigins(int index);
    /**
     * <code>repeated .androidx.health.platform.client.proto.DataOrigin data_origins = 8;</code>
     */
    int getDataOriginsCount();
  }
  /**
   * Protobuf type {@code androidx.health.platform.client.proto.AggregateDataRow}
   */
  public  static final class AggregateDataRow extends
      com.google.protobuf.GeneratedMessageLite<
          AggregateDataRow, AggregateDataRow.Builder> implements
      // @@protoc_insertion_point(message_implements:androidx.health.platform.client.proto.AggregateDataRow)
      AggregateDataRowOrBuilder {
    private AggregateDataRow() {
      startLocalDateTime_ = "";
      endLocalDateTime_ = "";
      dataOrigins_ = emptyProtobufList();
    }
    private int bitField0_;
    public static final int START_TIME_EPOCH_MS_FIELD_NUMBER = 1;
    private long startTimeEpochMs_;
    /**
     * <code>optional int64 start_time_epoch_ms = 1;</code>
     * @return Whether the startTimeEpochMs field is set.
     */
    @java.lang.Override
    public boolean hasStartTimeEpochMs() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional int64 start_time_epoch_ms = 1;</code>
     * @return The startTimeEpochMs.
     */
    @java.lang.Override
    public long getStartTimeEpochMs() {
      return startTimeEpochMs_;
    }
    /**
     * <code>optional int64 start_time_epoch_ms = 1;</code>
     * @param value The startTimeEpochMs to set.
     */
    private void setStartTimeEpochMs(long value) {
      bitField0_ |= 0x00000001;
      startTimeEpochMs_ = value;
    }
    /**
     * <code>optional int64 start_time_epoch_ms = 1;</code>
     */
    private void clearStartTimeEpochMs() {
      bitField0_ = (bitField0_ & ~0x00000001);
      startTimeEpochMs_ = 0L;
    }

    public static final int END_TIME_EPOCH_MS_FIELD_NUMBER = 2;
    private long endTimeEpochMs_;
    /**
     * <code>optional int64 end_time_epoch_ms = 2;</code>
     * @return Whether the endTimeEpochMs field is set.
     */
    @java.lang.Override
    public boolean hasEndTimeEpochMs() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional int64 end_time_epoch_ms = 2;</code>
     * @return The endTimeEpochMs.
     */
    @java.lang.Override
    public long getEndTimeEpochMs() {
      return endTimeEpochMs_;
    }
    /**
     * <code>optional int64 end_time_epoch_ms = 2;</code>
     * @param value The endTimeEpochMs to set.
     */
    private void setEndTimeEpochMs(long value) {
      bitField0_ |= 0x00000002;
      endTimeEpochMs_ = value;
    }
    /**
     * <code>optional int64 end_time_epoch_ms = 2;</code>
     */
    private void clearEndTimeEpochMs() {
      bitField0_ = (bitField0_ & ~0x00000002);
      endTimeEpochMs_ = 0L;
    }

    public static final int START_LOCAL_DATE_TIME_FIELD_NUMBER = 3;
    private java.lang.String startLocalDateTime_;
    /**
     * <code>optional string start_local_date_time = 3;</code>
     * @return Whether the startLocalDateTime field is set.
     */
    @java.lang.Override
    public boolean hasStartLocalDateTime() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional string start_local_date_time = 3;</code>
     * @return The startLocalDateTime.
     */
    @java.lang.Override
    public java.lang.String getStartLocalDateTime() {
      return startLocalDateTime_;
    }
    /**
     * <code>optional string start_local_date_time = 3;</code>
     * @return The bytes for startLocalDateTime.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getStartLocalDateTimeBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(startLocalDateTime_);
    }
    /**
     * <code>optional string start_local_date_time = 3;</code>
     * @param value The startLocalDateTime to set.
     */
    private void setStartLocalDateTime(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  bitField0_ |= 0x00000004;
      startLocalDateTime_ = value;
    }
    /**
     * <code>optional string start_local_date_time = 3;</code>
     */
    private void clearStartLocalDateTime() {
      bitField0_ = (bitField0_ & ~0x00000004);
      startLocalDateTime_ = getDefaultInstance().getStartLocalDateTime();
    }
    /**
     * <code>optional string start_local_date_time = 3;</code>
     * @param value The bytes for startLocalDateTime to set.
     */
    private void setStartLocalDateTimeBytes(
        com.google.protobuf.ByteString value) {
      startLocalDateTime_ = value.toStringUtf8();
      bitField0_ |= 0x00000004;
    }

    public static final int END_LOCAL_DATE_TIME_FIELD_NUMBER = 4;
    private java.lang.String endLocalDateTime_;
    /**
     * <code>optional string end_local_date_time = 4;</code>
     * @return Whether the endLocalDateTime field is set.
     */
    @java.lang.Override
    public boolean hasEndLocalDateTime() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional string end_local_date_time = 4;</code>
     * @return The endLocalDateTime.
     */
    @java.lang.Override
    public java.lang.String getEndLocalDateTime() {
      return endLocalDateTime_;
    }
    /**
     * <code>optional string end_local_date_time = 4;</code>
     * @return The bytes for endLocalDateTime.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getEndLocalDateTimeBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(endLocalDateTime_);
    }
    /**
     * <code>optional string end_local_date_time = 4;</code>
     * @param value The endLocalDateTime to set.
     */
    private void setEndLocalDateTime(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  bitField0_ |= 0x00000008;
      endLocalDateTime_ = value;
    }
    /**
     * <code>optional string end_local_date_time = 4;</code>
     */
    private void clearEndLocalDateTime() {
      bitField0_ = (bitField0_ & ~0x00000008);
      endLocalDateTime_ = getDefaultInstance().getEndLocalDateTime();
    }
    /**
     * <code>optional string end_local_date_time = 4;</code>
     * @param value The bytes for endLocalDateTime to set.
     */
    private void setEndLocalDateTimeBytes(
        com.google.protobuf.ByteString value) {
      endLocalDateTime_ = value.toStringUtf8();
      bitField0_ |= 0x00000008;
    }

    public static final int ZONE_OFFSET_SECONDS_FIELD_NUMBER = 5;
    private int zoneOffsetSeconds_;
    /**
     * <code>optional int32 zone_offset_seconds = 5;</code>
     * @return Whether the zoneOffsetSeconds field is set.
     */
    @java.lang.Override
    public boolean hasZoneOffsetSeconds() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional int32 zone_offset_seconds = 5;</code>
     * @return The zoneOffsetSeconds.
     */
    @java.lang.Override
    public int getZoneOffsetSeconds() {
      return zoneOffsetSeconds_;
    }
    /**
     * <code>optional int32 zone_offset_seconds = 5;</code>
     * @param value The zoneOffsetSeconds to set.
     */
    private void setZoneOffsetSeconds(int value) {
      bitField0_ |= 0x00000010;
      zoneOffsetSeconds_ = value;
    }
    /**
     * <code>optional int32 zone_offset_seconds = 5;</code>
     */
    private void clearZoneOffsetSeconds() {
      bitField0_ = (bitField0_ & ~0x00000010);
      zoneOffsetSeconds_ = 0;
    }

    public static final int DOUBLE_VALUES_FIELD_NUMBER = 6;
    private static final class DoubleValuesDefaultEntryHolder {
      static final com.google.protobuf.MapEntryLite<
          java.lang.String, java.lang.Double> defaultEntry =
              com.google.protobuf.MapEntryLite
              .<java.lang.String, java.lang.Double>newDefaultInstance(
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.DOUBLE,
                  0D);
    }
    private com.google.protobuf.MapFieldLite<
        java.lang.String, java.lang.Double> doubleValues_ =
            com.google.protobuf.MapFieldLite.emptyMapField();
    private com.google.protobuf.MapFieldLite<java.lang.String, java.lang.Double>
    internalGetDoubleValues() {
      return doubleValues_;
    }
    private com.google.protobuf.MapFieldLite<java.lang.String, java.lang.Double>
    internalGetMutableDoubleValues() {
      if (!doubleValues_.isMutable()) {
        doubleValues_ = doubleValues_.mutableCopy();
      }
      return doubleValues_;
    }
    @java.lang.Override

    public int getDoubleValuesCount() {
      return internalGetDoubleValues().size();
    }
    /**
     * <pre>
     * Key by metric spec {type}_{field}_{agg}
     * </pre>
     *
     * <code>map&lt;string, double&gt; double_values = 6;</code>
     */
    @java.lang.Override

    public boolean containsDoubleValues(
        java.lang.String key) {
      java.lang.Class<?> keyClass = key.getClass();
      return internalGetDoubleValues().containsKey(key);
    }
    /**
     * Use {@link #getDoubleValuesMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, java.lang.Double> getDoubleValues() {
      return getDoubleValuesMap();
    }
    /**
     * <pre>
     * Key by metric spec {type}_{field}_{agg}
     * </pre>
     *
     * <code>map&lt;string, double&gt; double_values = 6;</code>
     */
    @java.lang.Override

    public java.util.Map<java.lang.String, java.lang.Double> getDoubleValuesMap() {
      return java.util.Collections.unmodifiableMap(
          internalGetDoubleValues());
    }
    /**
     * <pre>
     * Key by metric spec {type}_{field}_{agg}
     * </pre>
     *
     * <code>map&lt;string, double&gt; double_values = 6;</code>
     */
    @java.lang.Override

    public double getDoubleValuesOrDefault(
        java.lang.String key,
        double defaultValue) {
      java.lang.Class<?> keyClass = key.getClass();
      java.util.Map<java.lang.String, java.lang.Double> map =
          internalGetDoubleValues();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <pre>
     * Key by metric spec {type}_{field}_{agg}
     * </pre>
     *
     * <code>map&lt;string, double&gt; double_values = 6;</code>
     */
    @java.lang.Override

    public double getDoubleValuesOrThrow(
        java.lang.String key) {
      java.lang.Class<?> keyClass = key.getClass();
      java.util.Map<java.lang.String, java.lang.Double> map =
          internalGetDoubleValues();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }
    /**
     * <pre>
     * Key by metric spec {type}_{field}_{agg}
     * </pre>
     *
     * <code>map&lt;string, double&gt; double_values = 6;</code>
     */
    private java.util.Map<java.lang.String, java.lang.Double>
    getMutableDoubleValuesMap() {
      return internalGetMutableDoubleValues();
    }

    public static final int LONG_VALUES_FIELD_NUMBER = 7;
    private static final class LongValuesDefaultEntryHolder {
      static final com.google.protobuf.MapEntryLite<
          java.lang.String, java.lang.Long> defaultEntry =
              com.google.protobuf.MapEntryLite
              .<java.lang.String, java.lang.Long>newDefaultInstance(
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.INT64,
                  0L);
    }
    private com.google.protobuf.MapFieldLite<
        java.lang.String, java.lang.Long> longValues_ =
            com.google.protobuf.MapFieldLite.emptyMapField();
    private com.google.protobuf.MapFieldLite<java.lang.String, java.lang.Long>
    internalGetLongValues() {
      return longValues_;
    }
    private com.google.protobuf.MapFieldLite<java.lang.String, java.lang.Long>
    internalGetMutableLongValues() {
      if (!longValues_.isMutable()) {
        longValues_ = longValues_.mutableCopy();
      }
      return longValues_;
    }
    @java.lang.Override

    public int getLongValuesCount() {
      return internalGetLongValues().size();
    }
    /**
     * <code>map&lt;string, int64&gt; long_values = 7;</code>
     */
    @java.lang.Override

    public boolean containsLongValues(
        java.lang.String key) {
      java.lang.Class<?> keyClass = key.getClass();
      return internalGetLongValues().containsKey(key);
    }
    /**
     * Use {@link #getLongValuesMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, java.lang.Long> getLongValues() {
      return getLongValuesMap();
    }
    /**
     * <code>map&lt;string, int64&gt; long_values = 7;</code>
     */
    @java.lang.Override

    public java.util.Map<java.lang.String, java.lang.Long> getLongValuesMap() {
      return java.util.Collections.unmodifiableMap(
          internalGetLongValues());
    }
    /**
     * <code>map&lt;string, int64&gt; long_values = 7;</code>
     */
    @java.lang.Override

    public long getLongValuesOrDefault(
        java.lang.String key,
        long defaultValue) {
      java.lang.Class<?> keyClass = key.getClass();
      java.util.Map<java.lang.String, java.lang.Long> map =
          internalGetLongValues();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <code>map&lt;string, int64&gt; long_values = 7;</code>
     */
    @java.lang.Override

    public long getLongValuesOrThrow(
        java.lang.String key) {
      java.lang.Class<?> keyClass = key.getClass();
      java.util.Map<java.lang.String, java.lang.Long> map =
          internalGetLongValues();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }
    /**
     * <code>map&lt;string, int64&gt; long_values = 7;</code>
     */
    private java.util.Map<java.lang.String, java.lang.Long>
    getMutableLongValuesMap() {
      return internalGetMutableLongValues();
    }

    public static final int DATA_ORIGINS_FIELD_NUMBER = 8;
    private com.google.protobuf.Internal.ProtobufList<androidx.health.platform.client.proto.DataProto.DataOrigin> dataOrigins_;
    /**
     * <code>repeated .androidx.health.platform.client.proto.DataOrigin data_origins = 8;</code>
     */
    @java.lang.Override
    public java.util.List<androidx.health.platform.client.proto.DataProto.DataOrigin> getDataOriginsList() {
      return dataOrigins_;
    }
    /**
     * <code>repeated .androidx.health.platform.client.proto.DataOrigin data_origins = 8;</code>
     */
    public java.util.List<? extends androidx.health.platform.client.proto.DataProto.DataOriginOrBuilder> 
        getDataOriginsOrBuilderList() {
      return dataOrigins_;
    }
    /**
     * <code>repeated .androidx.health.platform.client.proto.DataOrigin data_origins = 8;</code>
     */
    @java.lang.Override
    public int getDataOriginsCount() {
      return dataOrigins_.size();
    }
    /**
     * <code>repeated .androidx.health.platform.client.proto.DataOrigin data_origins = 8;</code>
     */
    @java.lang.Override
    public androidx.health.platform.client.proto.DataProto.DataOrigin getDataOrigins(int index) {
      return dataOrigins_.get(index);
    }
    /**
     * <code>repeated .androidx.health.platform.client.proto.DataOrigin data_origins = 8;</code>
     */
    public androidx.health.platform.client.proto.DataProto.DataOriginOrBuilder getDataOriginsOrBuilder(
        int index) {
      return dataOrigins_.get(index);
    }
    private void ensureDataOriginsIsMutable() {
      com.google.protobuf.Internal.ProtobufList<androidx.health.platform.client.proto.DataProto.DataOrigin> tmp = dataOrigins_;
      if (!tmp.isModifiable()) {
        dataOrigins_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <code>repeated .androidx.health.platform.client.proto.DataOrigin data_origins = 8;</code>
     */
    private void setDataOrigins(
        int index, androidx.health.platform.client.proto.DataProto.DataOrigin value) {
      value.getClass();
  ensureDataOriginsIsMutable();
      dataOrigins_.set(index, value);
    }
    /**
     * <code>repeated .androidx.health.platform.client.proto.DataOrigin data_origins = 8;</code>
     */
    private void addDataOrigins(androidx.health.platform.client.proto.DataProto.DataOrigin value) {
      value.getClass();
  ensureDataOriginsIsMutable();
      dataOrigins_.add(value);
    }
    /**
     * <code>repeated .androidx.health.platform.client.proto.DataOrigin data_origins = 8;</code>
     */
    private void addDataOrigins(
        int index, androidx.health.platform.client.proto.DataProto.DataOrigin value) {
      value.getClass();
  ensureDataOriginsIsMutable();
      dataOrigins_.add(index, value);
    }
    /**
     * <code>repeated .androidx.health.platform.client.proto.DataOrigin data_origins = 8;</code>
     */
    private void addAllDataOrigins(
        java.lang.Iterable<? extends androidx.health.platform.client.proto.DataProto.DataOrigin> values) {
      ensureDataOriginsIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, dataOrigins_);
    }
    /**
     * <code>repeated .androidx.health.platform.client.proto.DataOrigin data_origins = 8;</code>
     */
    private void clearDataOrigins() {
      dataOrigins_ = emptyProtobufList();
    }
    /**
     * <code>repeated .androidx.health.platform.client.proto.DataOrigin data_origins = 8;</code>
     */
    private void removeDataOrigins(int index) {
      ensureDataOriginsIsMutable();
      dataOrigins_.remove(index);
    }

    public static androidx.health.platform.client.proto.DataProto.AggregateDataRow parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.health.platform.client.proto.DataProto.AggregateDataRow parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.AggregateDataRow parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.health.platform.client.proto.DataProto.AggregateDataRow parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.AggregateDataRow parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static androidx.health.platform.client.proto.DataProto.AggregateDataRow parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.AggregateDataRow parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.health.platform.client.proto.DataProto.AggregateDataRow parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.AggregateDataRow parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static androidx.health.platform.client.proto.DataProto.AggregateDataRow parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static androidx.health.platform.client.proto.DataProto.AggregateDataRow parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static androidx.health.platform.client.proto.DataProto.AggregateDataRow parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(androidx.health.platform.client.proto.DataProto.AggregateDataRow prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code androidx.health.platform.client.proto.AggregateDataRow}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          androidx.health.platform.client.proto.DataProto.AggregateDataRow, Builder> implements
        // @@protoc_insertion_point(builder_implements:androidx.health.platform.client.proto.AggregateDataRow)
        androidx.health.platform.client.proto.DataProto.AggregateDataRowOrBuilder {
      // Construct using androidx.health.platform.client.proto.DataProto.AggregateDataRow.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>optional int64 start_time_epoch_ms = 1;</code>
       * @return Whether the startTimeEpochMs field is set.
       */
      @java.lang.Override
      public boolean hasStartTimeEpochMs() {
        return instance.hasStartTimeEpochMs();
      }
      /**
       * <code>optional int64 start_time_epoch_ms = 1;</code>
       * @return The startTimeEpochMs.
       */
      @java.lang.Override
      public long getStartTimeEpochMs() {
        return instance.getStartTimeEpochMs();
      }
      /**
       * <code>optional int64 start_time_epoch_ms = 1;</code>
       * @param value The startTimeEpochMs to set.
       * @return This builder for chaining.
       */
      public Builder setStartTimeEpochMs(long value) {
        copyOnWrite();
        instance.setStartTimeEpochMs(value);
        return this;
      }
      /**
       * <code>optional int64 start_time_epoch_ms = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearStartTimeEpochMs() {
        copyOnWrite();
        instance.clearStartTimeEpochMs();
        return this;
      }

      /**
       * <code>optional int64 end_time_epoch_ms = 2;</code>
       * @return Whether the endTimeEpochMs field is set.
       */
      @java.lang.Override
      public boolean hasEndTimeEpochMs() {
        return instance.hasEndTimeEpochMs();
      }
      /**
       * <code>optional int64 end_time_epoch_ms = 2;</code>
       * @return The endTimeEpochMs.
       */
      @java.lang.Override
      public long getEndTimeEpochMs() {
        return instance.getEndTimeEpochMs();
      }
      /**
       * <code>optional int64 end_time_epoch_ms = 2;</code>
       * @param value The endTimeEpochMs to set.
       * @return This builder for chaining.
       */
      public Builder setEndTimeEpochMs(long value) {
        copyOnWrite();
        instance.setEndTimeEpochMs(value);
        return this;
      }
      /**
       * <code>optional int64 end_time_epoch_ms = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearEndTimeEpochMs() {
        copyOnWrite();
        instance.clearEndTimeEpochMs();
        return this;
      }

      /**
       * <code>optional string start_local_date_time = 3;</code>
       * @return Whether the startLocalDateTime field is set.
       */
      @java.lang.Override
      public boolean hasStartLocalDateTime() {
        return instance.hasStartLocalDateTime();
      }
      /**
       * <code>optional string start_local_date_time = 3;</code>
       * @return The startLocalDateTime.
       */
      @java.lang.Override
      public java.lang.String getStartLocalDateTime() {
        return instance.getStartLocalDateTime();
      }
      /**
       * <code>optional string start_local_date_time = 3;</code>
       * @return The bytes for startLocalDateTime.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getStartLocalDateTimeBytes() {
        return instance.getStartLocalDateTimeBytes();
      }
      /**
       * <code>optional string start_local_date_time = 3;</code>
       * @param value The startLocalDateTime to set.
       * @return This builder for chaining.
       */
      public Builder setStartLocalDateTime(
          java.lang.String value) {
        copyOnWrite();
        instance.setStartLocalDateTime(value);
        return this;
      }
      /**
       * <code>optional string start_local_date_time = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearStartLocalDateTime() {
        copyOnWrite();
        instance.clearStartLocalDateTime();
        return this;
      }
      /**
       * <code>optional string start_local_date_time = 3;</code>
       * @param value The bytes for startLocalDateTime to set.
       * @return This builder for chaining.
       */
      public Builder setStartLocalDateTimeBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setStartLocalDateTimeBytes(value);
        return this;
      }

      /**
       * <code>optional string end_local_date_time = 4;</code>
       * @return Whether the endLocalDateTime field is set.
       */
      @java.lang.Override
      public boolean hasEndLocalDateTime() {
        return instance.hasEndLocalDateTime();
      }
      /**
       * <code>optional string end_local_date_time = 4;</code>
       * @return The endLocalDateTime.
       */
      @java.lang.Override
      public java.lang.String getEndLocalDateTime() {
        return instance.getEndLocalDateTime();
      }
      /**
       * <code>optional string end_local_date_time = 4;</code>
       * @return The bytes for endLocalDateTime.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getEndLocalDateTimeBytes() {
        return instance.getEndLocalDateTimeBytes();
      }
      /**
       * <code>optional string end_local_date_time = 4;</code>
       * @param value The endLocalDateTime to set.
       * @return This builder for chaining.
       */
      public Builder setEndLocalDateTime(
          java.lang.String value) {
        copyOnWrite();
        instance.setEndLocalDateTime(value);
        return this;
      }
      /**
       * <code>optional string end_local_date_time = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearEndLocalDateTime() {
        copyOnWrite();
        instance.clearEndLocalDateTime();
        return this;
      }
      /**
       * <code>optional string end_local_date_time = 4;</code>
       * @param value The bytes for endLocalDateTime to set.
       * @return This builder for chaining.
       */
      public Builder setEndLocalDateTimeBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setEndLocalDateTimeBytes(value);
        return this;
      }

      /**
       * <code>optional int32 zone_offset_seconds = 5;</code>
       * @return Whether the zoneOffsetSeconds field is set.
       */
      @java.lang.Override
      public boolean hasZoneOffsetSeconds() {
        return instance.hasZoneOffsetSeconds();
      }
      /**
       * <code>optional int32 zone_offset_seconds = 5;</code>
       * @return The zoneOffsetSeconds.
       */
      @java.lang.Override
      public int getZoneOffsetSeconds() {
        return instance.getZoneOffsetSeconds();
      }
      /**
       * <code>optional int32 zone_offset_seconds = 5;</code>
       * @param value The zoneOffsetSeconds to set.
       * @return This builder for chaining.
       */
      public Builder setZoneOffsetSeconds(int value) {
        copyOnWrite();
        instance.setZoneOffsetSeconds(value);
        return this;
      }
      /**
       * <code>optional int32 zone_offset_seconds = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearZoneOffsetSeconds() {
        copyOnWrite();
        instance.clearZoneOffsetSeconds();
        return this;
      }

      @java.lang.Override

      public int getDoubleValuesCount() {
        return instance.getDoubleValuesMap().size();
      }
      /**
       * <pre>
       * Key by metric spec {type}_{field}_{agg}
       * </pre>
       *
       * <code>map&lt;string, double&gt; double_values = 6;</code>
       */
      @java.lang.Override

      public boolean containsDoubleValues(
          java.lang.String key) {
        java.lang.Class<?> keyClass = key.getClass();
        return instance.getDoubleValuesMap().containsKey(key);
      }

      public Builder clearDoubleValues() {
        copyOnWrite();
        instance.getMutableDoubleValuesMap().clear();
        return this;
      }
      /**
       * <pre>
       * Key by metric spec {type}_{field}_{agg}
       * </pre>
       *
       * <code>map&lt;string, double&gt; double_values = 6;</code>
       */

      public Builder removeDoubleValues(
          java.lang.String key) {
        java.lang.Class<?> keyClass = key.getClass();
        copyOnWrite();
        instance.getMutableDoubleValuesMap().remove(key);
        return this;
      }
      /**
       * Use {@link #getDoubleValuesMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.Double> getDoubleValues() {
        return getDoubleValuesMap();
      }
      /**
       * <pre>
       * Key by metric spec {type}_{field}_{agg}
       * </pre>
       *
       * <code>map&lt;string, double&gt; double_values = 6;</code>
       */
      @java.lang.Override
      public java.util.Map<java.lang.String, java.lang.Double> getDoubleValuesMap() {
        return java.util.Collections.unmodifiableMap(
            instance.getDoubleValuesMap());
      }
      /**
       * <pre>
       * Key by metric spec {type}_{field}_{agg}
       * </pre>
       *
       * <code>map&lt;string, double&gt; double_values = 6;</code>
       */
      @java.lang.Override

      public double getDoubleValuesOrDefault(
          java.lang.String key,
          double defaultValue) {
        java.lang.Class<?> keyClass = key.getClass();
        java.util.Map<java.lang.String, java.lang.Double> map =
            instance.getDoubleValuesMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <pre>
       * Key by metric spec {type}_{field}_{agg}
       * </pre>
       *
       * <code>map&lt;string, double&gt; double_values = 6;</code>
       */
      @java.lang.Override

      public double getDoubleValuesOrThrow(
          java.lang.String key) {
        java.lang.Class<?> keyClass = key.getClass();
        java.util.Map<java.lang.String, java.lang.Double> map =
            instance.getDoubleValuesMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }
      /**
       * <pre>
       * Key by metric spec {type}_{field}_{agg}
       * </pre>
       *
       * <code>map&lt;string, double&gt; double_values = 6;</code>
       */
      public Builder putDoubleValues(
          java.lang.String key,
          double value) {
        java.lang.Class<?> keyClass = key.getClass();

        copyOnWrite();
        instance.getMutableDoubleValuesMap().put(key, value);
        return this;
      }
      /**
       * <pre>
       * Key by metric spec {type}_{field}_{agg}
       * </pre>
       *
       * <code>map&lt;string, double&gt; double_values = 6;</code>
       */
      public Builder putAllDoubleValues(
          java.util.Map<java.lang.String, java.lang.Double> values) {
        copyOnWrite();
        instance.getMutableDoubleValuesMap().putAll(values);
        return this;
      }

      @java.lang.Override

      public int getLongValuesCount() {
        return instance.getLongValuesMap().size();
      }
      /**
       * <code>map&lt;string, int64&gt; long_values = 7;</code>
       */
      @java.lang.Override

      public boolean containsLongValues(
          java.lang.String key) {
        java.lang.Class<?> keyClass = key.getClass();
        return instance.getLongValuesMap().containsKey(key);
      }

      public Builder clearLongValues() {
        copyOnWrite();
        instance.getMutableLongValuesMap().clear();
        return this;
      }
      /**
       * <code>map&lt;string, int64&gt; long_values = 7;</code>
       */

      public Builder removeLongValues(
          java.lang.String key) {
        java.lang.Class<?> keyClass = key.getClass();
        copyOnWrite();
        instance.getMutableLongValuesMap().remove(key);
        return this;
      }
      /**
       * Use {@link #getLongValuesMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.Long> getLongValues() {
        return getLongValuesMap();
      }
      /**
       * <code>map&lt;string, int64&gt; long_values = 7;</code>
       */
      @java.lang.Override
      public java.util.Map<java.lang.String, java.lang.Long> getLongValuesMap() {
        return java.util.Collections.unmodifiableMap(
            instance.getLongValuesMap());
      }
      /**
       * <code>map&lt;string, int64&gt; long_values = 7;</code>
       */
      @java.lang.Override

      public long getLongValuesOrDefault(
          java.lang.String key,
          long defaultValue) {
        java.lang.Class<?> keyClass = key.getClass();
        java.util.Map<java.lang.String, java.lang.Long> map =
            instance.getLongValuesMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <code>map&lt;string, int64&gt; long_values = 7;</code>
       */
      @java.lang.Override

      public long getLongValuesOrThrow(
          java.lang.String key) {
        java.lang.Class<?> keyClass = key.getClass();
        java.util.Map<java.lang.String, java.lang.Long> map =
            instance.getLongValuesMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }
      /**
       * <code>map&lt;string, int64&gt; long_values = 7;</code>
       */
      public Builder putLongValues(
          java.lang.String key,
          long value) {
        java.lang.Class<?> keyClass = key.getClass();

        copyOnWrite();
        instance.getMutableLongValuesMap().put(key, value);
        return this;
      }
      /**
       * <code>map&lt;string, int64&gt; long_values = 7;</code>
       */
      public Builder putAllLongValues(
          java.util.Map<java.lang.String, java.lang.Long> values) {
        copyOnWrite();
        instance.getMutableLongValuesMap().putAll(values);
        return this;
      }

      /**
       * <code>repeated .androidx.health.platform.client.proto.DataOrigin data_origins = 8;</code>
       */
      @java.lang.Override
      public java.util.List<androidx.health.platform.client.proto.DataProto.DataOrigin> getDataOriginsList() {
        return java.util.Collections.unmodifiableList(
            instance.getDataOriginsList());
      }
      /**
       * <code>repeated .androidx.health.platform.client.proto.DataOrigin data_origins = 8;</code>
       */
      @java.lang.Override
      public int getDataOriginsCount() {
        return instance.getDataOriginsCount();
      }/**
       * <code>repeated .androidx.health.platform.client.proto.DataOrigin data_origins = 8;</code>
       */
      @java.lang.Override
      public androidx.health.platform.client.proto.DataProto.DataOrigin getDataOrigins(int index) {
        return instance.getDataOrigins(index);
      }
      /**
       * <code>repeated .androidx.health.platform.client.proto.DataOrigin data_origins = 8;</code>
       */
      public Builder setDataOrigins(
          int index, androidx.health.platform.client.proto.DataProto.DataOrigin value) {
        copyOnWrite();
        instance.setDataOrigins(index, value);
        return this;
      }
      /**
       * <code>repeated .androidx.health.platform.client.proto.DataOrigin data_origins = 8;</code>
       */
      public Builder setDataOrigins(
          int index, androidx.health.platform.client.proto.DataProto.DataOrigin.Builder builderForValue) {
        copyOnWrite();
        instance.setDataOrigins(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .androidx.health.platform.client.proto.DataOrigin data_origins = 8;</code>
       */
      public Builder addDataOrigins(androidx.health.platform.client.proto.DataProto.DataOrigin value) {
        copyOnWrite();
        instance.addDataOrigins(value);
        return this;
      }
      /**
       * <code>repeated .androidx.health.platform.client.proto.DataOrigin data_origins = 8;</code>
       */
      public Builder addDataOrigins(
          int index, androidx.health.platform.client.proto.DataProto.DataOrigin value) {
        copyOnWrite();
        instance.addDataOrigins(index, value);
        return this;
      }
      /**
       * <code>repeated .androidx.health.platform.client.proto.DataOrigin data_origins = 8;</code>
       */
      public Builder addDataOrigins(
          androidx.health.platform.client.proto.DataProto.DataOrigin.Builder builderForValue) {
        copyOnWrite();
        instance.addDataOrigins(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .androidx.health.platform.client.proto.DataOrigin data_origins = 8;</code>
       */
      public Builder addDataOrigins(
          int index, androidx.health.platform.client.proto.DataProto.DataOrigin.Builder builderForValue) {
        copyOnWrite();
        instance.addDataOrigins(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .androidx.health.platform.client.proto.DataOrigin data_origins = 8;</code>
       */
      public Builder addAllDataOrigins(
          java.lang.Iterable<? extends androidx.health.platform.client.proto.DataProto.DataOrigin> values) {
        copyOnWrite();
        instance.addAllDataOrigins(values);
        return this;
      }
      /**
       * <code>repeated .androidx.health.platform.client.proto.DataOrigin data_origins = 8;</code>
       */
      public Builder clearDataOrigins() {
        copyOnWrite();
        instance.clearDataOrigins();
        return this;
      }
      /**
       * <code>repeated .androidx.health.platform.client.proto.DataOrigin data_origins = 8;</code>
       */
      public Builder removeDataOrigins(int index) {
        copyOnWrite();
        instance.removeDataOrigins(index);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:androidx.health.platform.client.proto.AggregateDataRow)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new androidx.health.platform.client.proto.DataProto.AggregateDataRow();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "startTimeEpochMs_",
              "endTimeEpochMs_",
              "startLocalDateTime_",
              "endLocalDateTime_",
              "zoneOffsetSeconds_",
              "doubleValues_",
              DoubleValuesDefaultEntryHolder.defaultEntry,
              "longValues_",
              LongValuesDefaultEntryHolder.defaultEntry,
              "dataOrigins_",
              androidx.health.platform.client.proto.DataProto.DataOrigin.class,
            };
            java.lang.String info =
                "\u0001\b\u0000\u0001\u0001\b\b\u0002\u0001\u0000\u0001\u1002\u0000\u0002\u1002\u0001" +
                "\u0003\u1008\u0002\u0004\u1008\u0003\u0005\u1004\u0004\u00062\u00072\b\u001b";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<androidx.health.platform.client.proto.DataProto.AggregateDataRow> parser = PARSER;
          if (parser == null) {
            synchronized (androidx.health.platform.client.proto.DataProto.AggregateDataRow.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<androidx.health.platform.client.proto.DataProto.AggregateDataRow>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:androidx.health.platform.client.proto.AggregateDataRow)
    private static final androidx.health.platform.client.proto.DataProto.AggregateDataRow DEFAULT_INSTANCE;
    static {
      AggregateDataRow defaultInstance = new AggregateDataRow();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        AggregateDataRow.class, defaultInstance);
    }

    public static androidx.health.platform.client.proto.DataProto.AggregateDataRow getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<AggregateDataRow> PARSER;

    public static com.google.protobuf.Parser<AggregateDataRow> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }


  static {
  }

  // @@protoc_insertion_point(outer_class_scope)
}