code: @SuppressWarnings("WeakerAccess")
      public DatabaseConnectionRequest<DatabaseUser, AuthenticationException> createUser(@NonNull String email, @NonNull String password, @NonNull String username, @NonNull String connection) {
          HttpUrl url = HttpUrl.parse(auth0.getDomainUrl()).newBuilder()
                  .addPathSegment(DB_CONNECTIONS_PATH)
                  .addPathSegment(SIGN_UP_PATH)
                  .build();
  
          final Map<String, Object> parameters = ParameterBuilder.newBuilder()
                  .set(USERNAME_KEY, username)
                  .set(EMAIL_KEY, email)
                  .set(PASSWORD_KEY, password)
                  .setConnection(connection)
                  .setClientId(getClientId())
                  .asDictionary();
  
          final ParameterizableRequest<DatabaseUser, AuthenticationException> request = factory.POST(url, client, gson, DatabaseUser.class, authErrorBuilder)
                  .addParameters(parameters);
          return new DatabaseConnectionRequest<>(request);
      }
docs: Creates a user in a DB connection using <a href="https://auth0.com/docs/api/authentication#signup">'/dbconnections/signup' endpoint</a>
  Example usage:
  <pre>
  {@code
  client.createUser("{email}", "{password}", "{username}", "{database connection name}")
  .start(new BaseCallback<DatabaseUser>() {
  {@literal}Override
  public void onSuccess(DatabaseUser payload) { }
  
  {@literal}@Override
  public void onFailure(AuthenticationException error) { }
  });
  }
  </pre>
  
  @param email      of the user and must be non null
  @param password   of the user and must be non null
  @param username   of the user and must be non null
  @param connection of the database to create the user on
  @return a request to start