private ExportResult<?> exportIteration(
      UUID jobId,
      AuthData exportAuthData,
      Optional<ExportInformation> exportInformation,
      String jobIdPrefix,
      int copyIteration)
      throws CopyException {

    monitor.debug(
        () -> jobIdPrefix + "Starting export, copy iteration: " + copyIteration,
        EventCode.COPIER_STARTED_EXPORT);

    CallableExporter callableExporter =
        new CallableExporter(
            exporterProvider, jobId, exportAuthData, exportInformation, metricRecorder);
    RetryingCallable<ExportResult> retryingExporter =
        new RetryingCallable<>(
            callableExporter,
            retryStrategyLibraryProvider.get(),
            Clock.systemUTC(),
            monitor,
            JobMetadata.getDataType(),
            JobMetadata.getExportService());
    boolean exportSuccess = false;
    Stopwatch exportStopwatch = Stopwatch.createStarted();
    try {
      ExportResult<?> exportResult = retryingExporter.call();
      exportSuccess = exportResult.getType() != ExportResult.ResultType.ERROR;
      monitor.debug(
          () -> jobIdPrefix + "Finished export, copy iteration: " + copyIteration,
          EventCode.COPIER_FINISHED_EXPORT);
      return exportResult;
    } catch (RetryException | RuntimeException e) {
      throw convertToCopyException(jobIdPrefix, "export", e);
    } finally {
      metricRecorder.exportPageFinished(
          JobMetadata.getDataType(),
          JobMetadata.getExportService(),
          exportSuccess,
          exportStopwatch.elapsed());
    }
  }
Kicks off transfer job {@code jobId} from {@code exporter} to {@code importer}.
portability-transfer/src/main/java/org/datatransferproject/transfer/copier/PortabilityAbstractInMemoryDataCopier.java