public DeregisterImageRequest unmarshall(Node node) throws Exception {
    if (node == null) return null;

    DeregisterImageRequest deregisterImageRequest = new DeregisterImageRequest();

    Node imageIdNode = XpathUtils.asNode("ImageId", node);
    deregisterImageRequest.setImageId(new StringUnmarshaller().unmarshall(imageIdNode));

    return deregisterImageRequest;
  }
  public Request<DeregisterImageRequest> marshall(DeregisterImageRequest deregisterImageRequest) {

    if (deregisterImageRequest == null) {
      throw new AmazonClientException("Invalid argument passed to marshall(...)");
    }

    Request<DeregisterImageRequest> request =
        new DefaultRequest<DeregisterImageRequest>(deregisterImageRequest, "AmazonEC2");
    request.addParameter("Action", "DeregisterImage");
    request.addParameter("Version", "2015-10-01");
    request.setHttpMethod(HttpMethodName.POST);

    if (deregisterImageRequest.getImageId() != null) {
      request.addParameter("ImageId", StringUtils.fromString(deregisterImageRequest.getImageId()));
    }

    return request;
  }