docs: function keycloakAdminClient (settings) {
    settings = settings || {};
  
    // setup our client and its private data
    const data = {};
    const client = {};
  
    // Recursively bind the modules to the client
    Object.assign(client, bindModule(client, {
      realms: realms,
      users: users,
      clients: clients,
      groups: groups,
      events: events
    }));
  
    // Make baseUrl unchanging
    Object.defineProperty(client, 'baseUrl', {
      value: settings.baseUrl
    });
  
    // A WeakMap reference to our private data
    // means that when all references to 'client' disappear
    // then the entry will be removed from the map
    privates.set(client, data);
  
    // return a promise that resolves after auth
    return authenticate(client, settings);
  }