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

    CreateVpnConnectionRequest createVpnConnectionRequest = new CreateVpnConnectionRequest();

    Node typeNode = XpathUtils.asNode("Type", node);
    createVpnConnectionRequest.setType(new StringUnmarshaller().unmarshall(typeNode));

    Node customerGatewayIdNode = XpathUtils.asNode("CustomerGatewayId", node);
    createVpnConnectionRequest.setCustomerGatewayId(
        new StringUnmarshaller().unmarshall(customerGatewayIdNode));

    Node vpnGatewayIdNode = XpathUtils.asNode("VpnGatewayId", node);
    createVpnConnectionRequest.setVpnGatewayId(
        new StringUnmarshaller().unmarshall(vpnGatewayIdNode));

    return createVpnConnectionRequest;
  }
  public Request<CreateVpnConnectionRequest> marshall(
      CreateVpnConnectionRequest createVpnConnectionRequest) {

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

    Request<CreateVpnConnectionRequest> request =
        new DefaultRequest<CreateVpnConnectionRequest>(createVpnConnectionRequest, "AmazonEC2");
    request.addParameter("Action", "CreateVpnConnection");
    request.addParameter("Version", "2011-12-15");

    if (createVpnConnectionRequest.getType() != null) {
      request.addParameter("Type", StringUtils.fromString(createVpnConnectionRequest.getType()));
    }
    if (createVpnConnectionRequest.getCustomerGatewayId() != null) {
      request.addParameter(
          "CustomerGatewayId",
          StringUtils.fromString(createVpnConnectionRequest.getCustomerGatewayId()));
    }
    if (createVpnConnectionRequest.getVpnGatewayId() != null) {
      request.addParameter(
          "VpnGatewayId", StringUtils.fromString(createVpnConnectionRequest.getVpnGatewayId()));
    }

    return request;
  }