*/
public AuthenticationResponse authenticate(AuthVersion authVersion, URI authenticationURL, String username, String password, String tenantId) throws IOException {
switch(authVersion) {
case v10:
default:
return this.authenticate(new Authentication10UsernameKeyRequest(authenticationURL, username, password));
case v11:
return this.authenticate(new Authentication11UsernameKeyRequest(authenticationURL, username, password));
case v20:
return this.authenticate(new Authentication20UsernamePasswordRequest(authenticationURL, username, password, tenantId));
}