class FreeIpaClient {

    public RPCResponse<Group> groupAddMembers(String group, Collection<String> users) throws FreeIpaClientException {
        FreeIpaChecks.checkGroupNotUnmanaged(group, () -> String.format("Group '%s' is not managed and membership cannot be changed", group));
        List<Object> flags = List.of(group);
        Map<String, Object> params = Map.of(
                "user", users
        );
        return invoke("group_add_member", flags, params, Group.class);
    }

    public  FreeIpaClient(JsonRpcHttpClient jsonRpcHttpClient, String apiAddress, String hostname);
    public  FreeIpaClient(JsonRpcHttpClient jsonRpcHttpClient, String apiVersion, String apiAddress, String hostname);

}