Create users through API using explicit user ids

I need to migrate a bunch of existing users from my SSO to Discourse. These users may never log-in to Discourse directly, but it should be possible to e.g. send them messages, or retrieve their notifications via the Discourse API. This is why they should be proactively created programmatically. Furthermore, users are able to change their username on SSO, so, given an id, I need to be able to update a user’s username on Discourse as well