// only including parameters that are actually used right now
assureRequiredParameter("LaunchSpecification.ImageId", imageId);
assureRequiredParameter("SpotPrice", spotPrice);
final LaunchSpecificationRequestType launchSpec = new LaunchSpecificationRequestType();
launchSpec.setImageId(imageId);
launchSpec.setKeyName(keyName);
if (userData != null) {
final UserDataType data = new UserDataType();
data.setData(userData);
launchSpec.setUserData(data);
}
launchSpec.setInstanceType(instanceType);
final RequestSpotInstancesType request = new RequestSpotInstancesType();
request.setInstanceCount(new BigInteger(instanceCount));
request.setSpotPrice(spotPrice);
request.setLaunchSpecification(launchSpec);