/** * CreateDBInstance action * * Creates a new DB instance. * * @param CreateDBInstanceRequestData $request Created DB Instance request object * @return DBInstanceData Returns created DBInstance * @throws ClientException * @throws RdsException */ public function createDBInstance(CreateDBInstanceRequestData $request) { $result = null; $options = $request->getQueryArray(); if ($this->rds->getApiClientType() === Aws::CLIENT_SOAP) { if (isset($options['DBSecurityGroups.member.1']) || isset($options['VpcSecurityGroupIds.member.1'])) { foreach ($options as $k => $v) { if (strpos($k, 'DBSecurityGroups.member.') !== false) { $options['DBSecurityGroups']['DBSecurityGroupName'][] = $v; unset($options[$k]); } elseif (strpos($k, 'VpcSecurityGroupIds.member.') !== false) { $options['VpcSecurityGroupIds']['VpcSecurityGroupId'][] = $v; unset($options[$k]); } } } } $response = $this->client->call(ucfirst(__FUNCTION__), $options); if ($response->getError() === false) { $sxml = simplexml_load_string($response->getRawContent()); if (!$this->exist($sxml->CreateDBInstanceResult)) { throw new RdsException(sprintf(self::UNEXPECTED, 'create DBIntance')); } $result = $this->_loadDBInstanceData($sxml->CreateDBInstanceResult->DBInstance); } return $result; }