public function describeSnapshots(ListDataType $snapshotIdList = null, ListDataType $ownerList = null, SnapshotFilterList $filter = null, ListDataType $restorableByList = null)
{
$result = null;
$options = array();
if ($snapshotIdList !== null) {
$options = array_merge($options, $snapshotIdList->getQueryArrayBare('SnapshotId'));
}
if ($ownerList !== null) {
$options = array_merge($options, $ownerList->getQueryArrayBare('Owner'));
}
if ($restorableByList !== null) {
$options = array_merge($options, $restorableByList->getQueryArrayBare('RestorableBy'));
}
if ($filter !== null) {
$options = array_merge($options, $filter->getQueryArrayBare('Filter'));
}
$response = $this->client->call(ucfirst(__FUNCTION__), $options);
if ($response->getError() === false) {
$sxml = simplexml_load_string($response->getRawContent());
$response = null;
$result = new SnapshotList();
$result->setEc2($this->ec2);
$result->setRequestId((string) $sxml->requestId);
if (!empty($sxml->snapshotSet->item)) {
foreach ($sxml->snapshotSet->item as $v) {
$item = $this->_loadSnapshotData($v);
$result->append($item);
unset($item);
}
}
}
return $result;
}