builder.instanceId(request.getId());
builder.instanceState(InstanceState.PENDING);
builder.rawState(request.getRawState());
builder.region(request.getRegion());
builder.tags(request.getTags());
LaunchSpecification spec = request.getLaunchSpecification();
builder.availabilityZone(spec.getAvailabilityZone());
// TODO convert
// builder.devices(spec.getBlockDeviceMappings());
builder.groupNames(spec.getSecurityGroupNames());
builder.imageId(spec.getImageId());
builder.instanceType(spec.getInstanceType());
builder.kernelId(spec.getKernelId());
builder.keyName(spec.getKeyName());
builder.ramdiskId(spec.getRamdiskId());
builder.monitoringState(Boolean.TRUE.equals(spec.isMonitoringEnabled()) ? MonitoringState.PENDING
: MonitoringState.DISABLED);
//TODO: determine the exact hypervisor
builder.hypervisor(Hypervisor.XEN);
return builder.build();
}