@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 10:
                {
                  input.readMessage(getGcsDataSourceFieldBuilder().getBuilder(), extensionRegistry);
                  dataSourceCase_ = 1;
                  break;
                } // case 10
              case 18:
                {
                  input.readMessage(
                      getAwsS3DataSourceFieldBuilder().getBuilder(), extensionRegistry);
                  dataSourceCase_ = 2;
                  break;
                } // case 18
              case 26:
                {
                  input.readMessage(
                      getHttpDataSourceFieldBuilder().getBuilder(), extensionRegistry);
                  dataSourceCase_ = 3;
                  break;
                } // case 26
              case 34:
                {
                  input.readMessage(getGcsDataSinkFieldBuilder().getBuilder(), extensionRegistry);
                  dataSinkCase_ = 4;
                  break;
                } // case 34
              case 42:
                {
                  input.readMessage(
                      getObjectConditionsFieldBuilder().getBuilder(), extensionRegistry);
                  bitField0_ |= 0x00000400;
                  break;
                } // case 42
              case 50:
                {
                  input.readMessage(
                      getTransferOptionsFieldBuilder().getBuilder(), extensionRegistry);
                  bitField0_ |= 0x00000800;
                  break;
                } // case 50
              case 66:
                {
                  input.readMessage(
                      getAzureBlobStorageDataSourceFieldBuilder().getBuilder(), extensionRegistry);
                  dataSourceCase_ = 8;
                  break;
                } // case 66
              case 106:
                {
                  input.readMessage(getPosixDataSinkFieldBuilder().getBuilder(), extensionRegistry);
                  dataSinkCase_ = 13;
                  break;
                } // case 106
              case 114:
                {
                  input.readMessage(
                      getPosixDataSourceFieldBuilder().getBuilder(), extensionRegistry);
                  dataSourceCase_ = 14;
                  break;
                } // case 114
              case 122:
                {
                  input.readMessage(
                      getTransferManifestFieldBuilder().getBuilder(), extensionRegistry);
                  bitField0_ |= 0x00001000;
                  break;
                } // case 122
              case 130:
                {
                  input.readMessage(
                      getGcsIntermediateDataLocationFieldBuilder().getBuilder(), extensionRegistry);
                  intermediateDataLocationCase_ = 16;
                  break;
                } // case 130
              case 138:
                {
                  sourceAgentPoolName_ = input.readStringRequireUtf8();
                  bitField0_ |= 0x00002000;
                  break;
                } // case 138
              case 146:
                {
                  sinkAgentPoolName_ = input.readStringRequireUtf8();
                  bitField0_ |= 0x00004000;
                  break;
                } // case 146
              case 154:
                {
                  input.readMessage(
                      getAwsS3CompatibleDataSourceFieldBuilder().getBuilder(), extensionRegistry);
                  dataSourceCase_ = 19;
                  break;
                } // case 154
              case 162:
                {
                  input.readMessage(
                      getHdfsDataSourceFieldBuilder().getBuilder(), extensionRegistry);
                  dataSourceCase_ = 20;
                  break;
                } // case 162
              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>
Configuration for running a transfer.
</pre>

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