def METHOD_NAME(self, member: Member):
    """Create a new GSuite user based on the provided data.
    :param member: The member that gets an account
    :return returns a tuple with the password and id of the created user
    """
    plain_password = Member.objects.make_random_password(length=15)
    # Google only supports sha-1, md5 or crypt as hash functions[0] for the initial password.
    # Because this password should be changed on first login and is safely sent to Google over
    # https, we just use sha-1 for simplicity. GitHub code scanning gave a warning about this
    # but we have set it to ignore the 'problem'.
    # [0]: https://developers.google.com/admin-sdk/directory/reference/rest/v1/users#User.FIELDS.hash_function
    digest_password = hashlib.sha1(plain_password.encode("utf-8")).hexdigest()
    try:
        response = (
            self.directory_api.users()
            .insert(
                body={
                    "name": {
                        "familyName": member.last_name,
                        "givenName": member.first_name,
                    },
                    "primaryEmail": f"{member.username}@{settings.GSUITE_MEMBERS_DOMAIN}",
                    "password": digest_password,
                    "hashFunction": "SHA-1",
                    "changePasswordAtNextLogin": "true",
                    "externalIds": [{"value": f"{member.pk}", "type": "login_id"}],
                    "includeInGlobalAddressList": "false",
                    "orgUnitPath": "/",
                },
            )
            .execute()
        )
    except HttpError as e:
        if e.resp.status == 409:
            return self.update_user(member, member.username)
        raise e
    return response["primaryEmail"], plain_password