public function __construct($username, $identityEndpoint, $region, $apiKey = null, Closure $updateTokenCallback = null, AuthToken $authToken = null, $password = null, $tenantName = null, $domainName = null, $identityVersion = null, array $proxySettings = null, $requestTimeout = null)
{
if ($identityVersion === null) {
$identityVersion = static::parseIdentityVersion($identityEndpoint);
}
//Sets default value for the request timeout
$this->defaultRequestTimeout = $requestTimeout ?: self::DEFAULT_REQUEST_TIMEOUT;
$this->setUsername($username)->setIdentityEndpoint($identityEndpoint)->setRegion($region)->setPassword($password)->setApiKey($apiKey)->setUpdateTokenCallback($updateTokenCallback)->setAuthToken($authToken)->setTenantName($tenantName)->setDomainName($domainName)->setIdentityVersion($identityVersion)->setProxySettings($proxySettings)->setRequestTimeout($this->defaultRequestTimeout);
}