@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:
                {
                  objectsFoundFromSource_ = input.readInt64();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 8
              case 16:
                {
                  bytesFoundFromSource_ = input.readInt64();
                  bitField0_ |= 0x00000002;
                  break;
                } // case 16
              case 24:
                {
                  objectsFoundOnlyFromSink_ = input.readInt64();
                  bitField0_ |= 0x00000004;
                  break;
                } // case 24
              case 32:
                {
                  bytesFoundOnlyFromSink_ = input.readInt64();
                  bitField0_ |= 0x00000008;
                  break;
                } // case 32
              case 40:
                {
                  objectsFromSourceSkippedBySync_ = input.readInt64();
                  bitField0_ |= 0x00000010;
                  break;
                } // case 40
              case 48:
                {
                  bytesFromSourceSkippedBySync_ = input.readInt64();
                  bitField0_ |= 0x00000020;
                  break;
                } // case 48
              case 56:
                {
                  objectsCopiedToSink_ = input.readInt64();
                  bitField0_ |= 0x00000040;
                  break;
                } // case 56
              case 64:
                {
                  bytesCopiedToSink_ = input.readInt64();
                  bitField0_ |= 0x00000080;
                  break;
                } // case 64
              case 72:
                {
                  objectsDeletedFromSource_ = input.readInt64();
                  bitField0_ |= 0x00000100;
                  break;
                } // case 72
              case 80:
                {
                  bytesDeletedFromSource_ = input.readInt64();
                  bitField0_ |= 0x00000200;
                  break;
                } // case 80
              case 88:
                {
                  objectsDeletedFromSink_ = input.readInt64();
                  bitField0_ |= 0x00000400;
                  break;
                } // case 88
              case 96:
                {
                  bytesDeletedFromSink_ = input.readInt64();
                  bitField0_ |= 0x00000800;
                  break;
                } // case 96
              case 104:
                {
                  objectsFromSourceFailed_ = input.readInt64();
                  bitField0_ |= 0x00001000;
                  break;
                } // case 104
              case 112:
                {
                  bytesFromSourceFailed_ = input.readInt64();
                  bitField0_ |= 0x00002000;
                  break;
                } // case 112
              case 120:
                {
                  objectsFailedToDeleteFromSink_ = input.readInt64();
                  bitField0_ |= 0x00004000;
                  break;
                } // case 120
              case 128:
                {
                  bytesFailedToDeleteFromSink_ = input.readInt64();
                  bitField0_ |= 0x00008000;
                  break;
                } // case 128
              case 136:
                {
                  directoriesFoundFromSource_ = input.readInt64();
                  bitField0_ |= 0x00010000;
                  break;
                } // case 136
              case 144:
                {
                  directoriesFailedToListFromSource_ = input.readInt64();
                  bitField0_ |= 0x00020000;
                  break;
                } // case 144
              case 152:
                {
                  directoriesSuccessfullyListedFromSource_ = input.readInt64();
                  bitField0_ |= 0x00040000;
                  break;
                } // case 152
              case 176:
                {
                  intermediateObjectsCleanedUp_ = input.readInt64();
                  bitField0_ |= 0x00080000;
                  break;
                } // case 176
              case 184:
                {
                  intermediateObjectsFailedCleanedUp_ = input.readInt64();
                  bitField0_ |= 0x00100000;
                  break;
                } // case 184
              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 collection of counters that report the progress of a transfer operation.
</pre>

Protobuf type {@code google.storagetransfer.v1.TransferCounters}
java-storage-transfer/proto-google-cloud-storage-transfer-v1/src/main/java/com/google/storagetransfer/v1/proto/TransferTypes.java