public function describeInstanceStatus(ListDataType $instanceIdList = null, $includeAllInstances = null, InstanceStatusFilterList $filter = null, $nextToken = null, $maxResults = null)
{
$result = null;
$options = array();
if ($instanceIdList !== null) {
$options = array_merge($options, $this->getInstanceIdListQuery($instanceIdList));
}
if ($filter !== null) {
$options = array_merge($options, $filter->getQueryArrayBare('Filter'));
}
if ($includeAllInstances !== null) {
$options['IncludeAllInstances'] = $includeAllInstances ? 'true' : 'false';
}
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 InstanceStatusList();
$result->setEc2($this->ec2);
$result->setRequestId((string) $sxml->requestId);
$result->setNextToken($this->exist($sxml->nextToken) ? (string) $sxml->nextToken : null);
if (!empty($sxml->instanceStatusSet->item)) {
foreach ($sxml->instanceStatusSet->item as $v) {
$item = new InstanceStatusData();
$item->setEc2($this->ec2);
$item->instanceId = (string) $v->instanceId;
$item->availabilityZone = (string) $v->availabilityZone;
$item->setEventsSet($this->_loadInstanceStatusEventTypeData($v->eventsSet))->setInstanceState($this->_loadInstanceStateData($v->instanceState))->setSystemStatus($this->_loadInstanceStatusTypeData($v->systemStatus))->setInstanceStatus($this->_loadInstanceStatusTypeData($v->instanceStatus));
$result->append($item);
unset($item);
}
}
}
return $result;
}