code: func (r *RemoteImageService) PullImage(image *runtimeapi.ImageSpec, auth *runtimeapi.AuthConfig, podSandboxConfig *runtimeapi.PodSandboxConfig) (string, error) {
  	ctx, cancel := getContextWithCancel()
  	defer cancel()
  
  	resp, err := r.imageClient.PullImage(ctx, &runtimeapi.PullImageRequest{
  		Image:         image,
  		Auth:          auth,
  		SandboxConfig: podSandboxConfig,
  	})
  	if err != nil {
  		klog.Errorf("PullImage %q from image service failed: %v", image.Image, err)
  		return "", err
  	}
  
  	if resp.ImageRef == "" {
  		errorMessage := fmt.Sprintf("imageRef of image %q is not set", image.Image)
  		klog.Errorf("PullImage failed: %s", errorMessage)
  		return "", errors.New(errorMessage)
  	}
  
  	return resp.ImageRef, nil
  }
docs: // PullImage pulls an image with authentication config.