class PullBaseImageStep implements Callable<ImagesAndRegistryClient> {

  @VisibleForTesting
  String lookUpPlatformSpecificImageManifest(
      V22ManifestListTemplate manifestListTemplate, Platform platform)
      throws UnlistedPlatformInManifestListException {
    EventHandlers eventHandlers = buildContext.getEventHandlers();

    List<String> digests =
        manifestListTemplate.getDigestsForPlatform(platform.getArchitecture(), platform.getOs());
    if (digests.size() == 0) {
      String errorMessage =
          buildContext.getBaseImageConfiguration().getImage()
              + " is a manifest list, but the list does not contain an image for architecture=%s, "
              + "os=%s. If your intention was to specify a platform for your image, see "
              + "https://github.com/GoogleContainerTools/jib/blob/master/docs/faq.md#how-do-i-specify-a-platform-in-the-manifest-list-or-oci-index-of-a-base-image";
      eventHandlers.dispatch(
          LogEvent.error(
              String.format(errorMessage, platform.getArchitecture(), platform.getOs())));
      throw new UnlistedPlatformInManifestListException(errorMessage);
    }
    // TODO: perhaps we should return multiple digests matching the platform.
    return digests.get(0);
  }

    PullBaseImageStep(
      BuildContext buildContext, ProgressEventDispatcher.Factory progressEventDispatcherFactory);

}