docs: def call_api(self, resource_path, method,
                   path_params=None, query_params=None, header_params=None,
                   body=None, post_params=None, files=None,
                   response_type=None, auth_settings=None, callback=None,
                   _return_http_data_only=None, collection_formats=None, _preload_content=True,
                   _request_timeout=None):
          """
          Makes the HTTP request (synchronous) and return the deserialized data.
          To make an async request, define a function for callback.
  
          :param resource_path: Path to method endpoint.
          :param method: Method to call.
          :param path_params: Path parameters in the url.
          :param query_params: Query parameters in the url.
          :param header_params: Header parameters to be
              placed in the request header.
          :param body: Request body.
          :param post_params dict: Request post form parameters,
              for `application/x-www-form-urlencoded`, `multipart/form-data`.
          :param auth_settings list: Auth Settings names for the request.
          :param response: Response data type.
          :param files dict: key -> filename, value -> filepath,
              for `multipart/form-data`.
          :param callback function: Callback function for asynchronous request.
              If provide this parameter,
              the request will be called asynchronously.
          :param _return_http_data_only: response data without head status code and headers
          :param collection_formats: dict of collection formats for path, query,
              header, and post parameters.
          :param _preload_content: if False, the urllib3.HTTPResponse object will be returned without
                                   reading/decoding response data. Default is True.
          :param _request_timeout: timeout setting for this request. If one number provided, it will be total request
                                   timeout. It can also be a pair (tuple) of (connection, read) timeouts.
          :return:
              If provide parameter callback,
              the request will be called asynchronously.
              The method will return the request thread.
              If parameter callback is None,
              then the method will return the response directly.
          """
          if callback is None:
              return self.__call_api(resource_path, method,
                                     path_params, query_params, header_params,
                                     body, post_params, files,
                                     response_type, auth_settings, callback,
                                     _return_http_data_only, collection_formats, _preload_content, _request_timeout)
          else:
              thread = threading.Thread(target=self.__call_api,
                                        args=(resource_path, method,
                                              path_params, query_params,
                                              header_params, body,
                                              post_params, files,
                                              response_type, auth_settings,
                                              callback, _return_http_data_only,
                                              collection_formats, _preload_content, _request_timeout))
          thread.start()
          return thread