docs: @Override
      public @Nonnull MachineImage registerImageBundle(@Nonnull ImageCreateOptions options) throws CloudException, InternalException {
          APITrace.begin(getProvider(), "Image.registerImageBundle");
          try {
              if( !MachineImageFormat.AWS.equals(options.getBundleFormat()) ) {
                  throw new CloudException("Unsupported bundle format: " + options.getBundleFormat());
              }
              if( options.getBundleLocation() == null ) {
                  throw new OperationNotSupportedException("A valid bundle location in object storage was not provided");
              }
              Map<String,String> parameters = getProvider(). getStandardParameters(getProvider(). getContext(), EC2Method.REGISTER_IMAGE);
              NodeList blocks;
              EC2Method method;
              Document doc;
  
              parameters.put("ImageLocation", options.getBundleLocation());
              method = new EC2Method(getProvider(), parameters);
              try {
                  doc = method.invoke();
              }
              catch( EC2Exception e ) {
                  logger.error(e.getSummary());
                  throw new CloudException(e);
              }
              blocks = doc.getElementsByTagName("imageId");
              if( blocks.getLength() > 0 ) {
                  Node imageIdNode = blocks.item(0);
                  String id = imageIdNode.getFirstChild().getNodeValue().trim();
                  MachineImage img = getMachineImage(id);
  
                  if( img == null ) {
                      throw new CloudException("Expected to find newly registered machine image '" + id + "', but none was found");
                  }
                  return img;
              }
              throw new CloudException("No machine image was registered, but no error was thrown");
          }
          finally {
              APITrace.end();
          }
      }