@Override public RemoteConnection apply(VirtualMachine virtualMachine) { checkArgument(virtualMachine.publicIpAddress().isPresent()); checkArgument(virtualMachine.loginName().isPresent()); checkArgument(virtualMachine.loginPassword().isPresent()); int remotePort = virtualMachine.remotePort(); OSFamily osFamily = virtualMachine.osFamily(); return connectionService.getRemoteConnection( HostAndPort.fromParts(virtualMachine.publicIpAddress().get().getIp(), remotePort), osFamily, LoginCredentialBuilder.newBuilder() .password(virtualMachine.loginPassword().get()) .username(virtualMachine.loginName().get()) .build()); }