public function describeDBEngineVersions(DescribeDBEngineVersionsData $request = null, $marker = null, $maxRecords = null)
{
$result = null;
$options = !empty($request) ? $request->getQueryArray() : [];
$action = ucfirst(__FUNCTION__);
if ($marker !== null) {
$options['Marker'] = (string) $marker;
}
if ($maxRecords !== null) {
$options['MaxRecords'] = (int) $maxRecords;
}
$response = $this->client->call($action, $options);
if ($response->getError() === false) {
$sxml = simplexml_load_string($response->getRawContent());
if (!$this->exist($sxml->{$action . 'Result'})) {
throw new RdsException(sprintf(self::UNEXPECTED, $action));
}
$ptr = $sxml->{$action . 'Result'};
$result = new DBEngineVersionList();
$result->setRds($this->rds);
$result->marker = $this->exist($ptr->Marker) ? (string) $ptr->Marker : null;
if (isset($ptr->DBEngineVersions->DBEngineVersion)) {
foreach ($ptr->DBEngineVersions->DBEngineVersion as $v) {
$item = $this->_loadDBEngineVersionData($v);
$result->append($item);
unset($item);
}
}
}
return $result;
}