public function describeInstances(ListDataType $instanceIdList = null, InstanceFilterList $filter = null, $nextToken = null, $maxResults = null)
{
$result = null;
$options = [];
if ($instanceIdList !== null) {
$options = array_merge($options, $this->getInstanceIdListQuery($instanceIdList));
}
if ($filter !== null) {
$options = array_merge($options, $filter->getQueryArrayBare('Filter'));
}
if ($nextToken !== null) {
$options['NextToken'] = (string) $nextToken;
}
if ($maxResults !== null) {
$options['MaxResults'] = (int) $maxResults;
}
$response = $this->client->call(ucfirst(__FUNCTION__), $options);
if ($response->getError() === false) {
//Success
$sxml = simplexml_load_string($response->getRawContent());
$response = null;
$result = new ReservationList();
$result->setEc2($this->ec2);
$result->setRequestId((string) $sxml->requestId);
$result->setNextToken($this->exist($sxml->nextToken) ? (string) $sxml->nextToken : null);
if (!empty($sxml->reservationSet->item)) {
foreach ($sxml->reservationSet->item as $r) {
$item = new ReservationData();
$item->setEc2($this->ec2);
$item->reservationId = (string) $r->reservationId;
$item->ownerId = $this->exist($r->ownerId) ? (string) $r->ownerId : null;
$item->requesterId = $this->exist($r->requesterId) ? (string) $r->requesterId : null;
$item->setGroupSet($this->_loadGroupList($r->groupSet))->setInstancesSet($this->_loadInstanceList($r->instancesSet));
$result->append($item);
unset($item);
}
}
}
return $result;
}