class RegistryClient {

  public <T extends ManifestTemplate> ManifestAndDigest<T> pullManifest(
      String imageQualifier, Class<T> manifestTemplateClass) throws IOException, RegistryException {
    ManifestPuller<T> manifestPuller =
        new ManifestPuller<>(
            registryEndpointRequestProperties, imageQualifier, manifestTemplateClass);
    return callRegistryEndpoint(manifestPuller);
  }

  private  RegistryClient(
      EventHandlers eventHandlers,
      @Nullable Credential credential,
      RegistryEndpointRequestProperties registryEndpointRequestProperties,
      @Nullable String userAgent,
      FailoverHttpClient httpClient);

}