docs: public Request buildRequest(String path, String method, List<Pair> queryParams, List<Pair> collectionQueryParams, Object body, Map<String, String> headerParams, Map<String, Object> formParams, String[] authNames, ProgressRequestBody.ProgressRequestListener progressRequestListener) throws ApiException {
          updateParamsForAuth(authNames, queryParams, headerParams);
  
          final String url = buildUrl(path, queryParams, collectionQueryParams);
          final Request.Builder reqBuilder = new Request.Builder().url(url);
          processHeaderParams(headerParams, reqBuilder);
  
          String contentType = (String) headerParams.get("Content-Type");
          // ensuring a default content type
          if (contentType == null) {
              contentType = "application/json";
          }
  
          RequestBody reqBody;
          if (!HttpMethod.permitsRequestBody(method)) {
              reqBody = null;
          } else if ("application/x-www-form-urlencoded".equals(contentType)) {
              reqBody = buildRequestBodyFormEncoding(formParams);
          } else if ("multipart/form-data".equals(contentType)) {
              reqBody = buildRequestBodyMultipart(formParams);
          } else if (body == null) {
              if ("DELETE".equals(method)) {
                  // allow calling DELETE without sending a request body
                  reqBody = null;
              } else {
                  // use an empty request body (for POST, PUT and PATCH)
                  reqBody = RequestBody.create(MediaType.parse(contentType), "");
              }
          } else {
              reqBody = serialize(body, contentType);
          }
  
          Request request = null;
  
          if(progressRequestListener != null && reqBody != null) {
              ProgressRequestBody progressRequestBody = new ProgressRequestBody(reqBody, progressRequestListener);
              request = reqBuilder.method(method, progressRequestBody).build();
          } else {
              request = reqBuilder.method(method, reqBody).build();
          }
  
          return request;
      }