@java.lang.Override
    public Builder mergeFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8:
              {
                dtype_ = input.readEnum();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
            case 16:
              {
                long v = input.readInt64();
                ensureShapeIsMutable();
                shape_.addLong(v);
                break;
              } // case 16
            case 18:
              {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureShapeIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  shape_.addLong(input.readInt64());
                }
                input.popLimit(limit);
                break;
              } // case 18
            case 24:
              {
                boolean v = input.readBool();
                ensureBoolValIsMutable();
                boolVal_.addBoolean(v);
                break;
              } // case 24
            case 26:
              {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                int alloc = length > 4096 ? 4096 : length;
                ensureBoolValIsMutable(alloc / 1);
                while (input.getBytesUntilLimit() > 0) {
                  boolVal_.addBoolean(input.readBool());
                }
                input.popLimit(limit);
                break;
              } // case 26
            case 45:
              {
                float v = input.readFloat();
                ensureFloatValIsMutable();
                floatVal_.addFloat(v);
                break;
              } // case 45
            case 42:
              {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                int alloc = length > 4096 ? 4096 : length;
                ensureFloatValIsMutable(alloc / 4);
                while (input.getBytesUntilLimit() > 0) {
                  floatVal_.addFloat(input.readFloat());
                }
                input.popLimit(limit);
                break;
              } // case 42
            case 49:
              {
                double v = input.readDouble();
                ensureDoubleValIsMutable();
                doubleVal_.addDouble(v);
                break;
              } // case 49
            case 50:
              {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                int alloc = length > 4096 ? 4096 : length;
                ensureDoubleValIsMutable(alloc / 8);
                while (input.getBytesUntilLimit() > 0) {
                  doubleVal_.addDouble(input.readDouble());
                }
                input.popLimit(limit);
                break;
              } // case 50
            case 56:
              {
                int v = input.readInt32();
                ensureIntValIsMutable();
                intVal_.addInt(v);
                break;
              } // case 56
            case 58:
              {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureIntValIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  intVal_.addInt(input.readInt32());
                }
                input.popLimit(limit);
                break;
              } // case 58
            case 64:
              {
                long v = input.readInt64();
                ensureInt64ValIsMutable();
                int64Val_.addLong(v);
                break;
              } // case 64
            case 66:
              {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureInt64ValIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  int64Val_.addLong(input.readInt64());
                }
                input.popLimit(limit);
                break;
              } // case 66
            case 72:
              {
                int v = input.readUInt32();
                ensureUintValIsMutable();
                uintVal_.addInt(v);
                break;
              } // case 72
            case 74:
              {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureUintValIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  uintVal_.addInt(input.readUInt32());
                }
                input.popLimit(limit);
                break;
              } // case 74
            case 80:
              {
                long v = input.readUInt64();
                ensureUint64ValIsMutable();
                uint64Val_.addLong(v);
                break;
              } // case 80
            case 82:
              {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureUint64ValIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  uint64Val_.addLong(input.readUInt64());
                }
                input.popLimit(limit);
                break;
              } // case 82
            case 90:
              {
                com.google.cloud.vertexai.api.Tensor m =
                    input.readMessage(
                        com.google.cloud.vertexai.api.Tensor.parser(), extensionRegistry);
                if (listValBuilder_ == null) {
                  ensureListValIsMutable();
                  listVal_.add(m);
                } else {
                  listValBuilder_.addMessage(m);
                }
                break;
              } // case 90
            case 98:
              {
                com.google.protobuf.MapEntry<java.lang.String, com.google.cloud.vertexai.api.Tensor>
                    structVal__ =
                        input.readMessage(
                            StructValDefaultEntryHolder.defaultEntry.getParserForType(),
                            extensionRegistry);
                internalGetMutableStructVal()
                    .ensureBuilderMap()
                    .put(structVal__.getKey(), structVal__.getValue());
                bitField0_ |= 0x00001000;
                break;
              } // case 98
            case 106:
              {
                tensorVal_ = input.readBytes();
                bitField0_ |= 0x00002000;
                break;
              } // case 106
            case 114:
              {
                java.lang.String s = input.readStringRequireUtf8();
                ensureStringValIsMutable();
                stringVal_.add(s);
                break;
              } // case 114
            case 122:
              {
                com.google.protobuf.ByteString v = input.readBytes();
                ensureBytesValIsMutable();
                bytesVal_.add(v);
                break;
              } // case 122
            default:
              {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
          } // switch (tag)
        } // while (!done)
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.unwrapIOException();
      } finally {
        onChanged();
      } // finally
      return this;
    }
<pre>
A tensor value type.
</pre>

Protobuf type {@code google.cloud.vertexai.v1.Tensor}
java-vertexai/proto-google-cloud-vertexai-v1/src/main/java/com/google/cloud/vertexai/api/Tensor.java