code: public com.squareup.okhttp.Call signInAsync(String username, String password, Boolean saml, final ApiCallback<Void> callback) throws ApiException {
  
          ProgressResponseBody.ProgressListener progressListener = null;
          ProgressRequestBody.ProgressRequestListener progressRequestListener = null;
  
          if (callback != null) {
              progressListener = new ProgressResponseBody.ProgressListener() {
                  @Override
                  public void update(long bytesRead, long contentLength, boolean done) {
                      callback.onDownloadProgress(bytesRead, contentLength, done);
                  }
              };
  
              progressRequestListener = new ProgressRequestBody.ProgressRequestListener() {
                  @Override
                  public void onRequestProgress(long bytesWritten, long contentLength, boolean done) {
                      callback.onUploadProgress(bytesWritten, contentLength, done);
                  }
              };
          }
  
          com.squareup.okhttp.Call call = signInValidateBeforeCall(username, password, saml, progressListener, progressRequestListener);
          apiClient.executeAsync(call, callback);
          return call;
      }
docs: Perform form-based authentication. (asynchronously)
  Perform form-based authentication by submitting an agent&#39;s username and password.
  @param username The agent&#39;s username, formatted as &#39;tenant\\username&#39;. (required)
  @param password The agent&#39;s password. (required)
  @param saml Specifies whether to login using [Security Assertion Markup Language](https://en.wikipedia.org/wiki/Security_Assertion_Markup_Language) (SAML). (optional)
  @param callback The callback to be executed when the API call finishes
  @return The request call
  @throws ApiException If fail to process the API call, e.g. serializing the request body object