* @param runInstances
*
* @see <a href="http://docs.amazonwebservices.com/AWSEC2/2010-11-15/APIReference/index.html?ApiReference-query-RunInstances.html">RunInstances</a>
*/
public RunInstancesResponse runInstances(RunInstances runInstances) {
RunInstancesType rit = runInstances.getRunInstances();
GroupSetType gst = rit.getGroupSet();
PlacementRequestType prt = rit.getPlacement();
UserDataType userData = rit.getUserData();
String type = rit.getInstanceType();
String keyName = rit.getKeyName();
EC2RunInstances request = new EC2RunInstances();
request.setTemplateId(rit.getImageId());
if (rit.getMinCount() < 1) {
throw new EC2ServiceException(ClientError.InvalidParameterValue, "Value of parameter MinCount should be greater than 0");
} else
request.setMinCount(rit.getMinCount());
if (rit.getMaxCount() < 1) {
throw new EC2ServiceException(ClientError.InvalidParameterValue, "Value of parameter MaxCount should be greater than 0");
} else
request.setMaxCount(rit.getMaxCount());
if (null != type)
request.setInstanceType(type);
if (null != prt)
request.setZoneName(prt.getAvailabilityZone());
if (null != userData)
request.setUserData(userData.getData());
if (null != keyName)
request.setKeyName(rit.getKeyName());
// -> we can only support one group per instance
if (null != gst) {
GroupItemType[] items = gst.getItem();
if (null != items) {