code: def get_folders(self, limit=None, *, query=None, order_by=None):
          
          if self.root:
              url = self.build_url(self._endpoints.get('root_folders'))
          else:
              url = self.build_url(
                  self._endpoints.get('child_folders').format(id=self.folder_id))
  
          params = {}
  
          if limit:
              params['$top'] = limit
  
          if order_by:
              params['$orderby'] = order_by
  
          if query:
              if isinstance(query, str):
                  params['$filter'] = query
              else:
                  params.update(query.as_params())
  
          response = self.con.get(url, params=params or None)
          if not response:
              return []
  
          data = response.json()
  
          return [self.__class__(parent=self, **{self._cloud_data_key: folder})
                  for folder in data.get('value', [])]
docs: Returns a list of child folders
  
          :param int limit: max no. of folders to get. Over 999 uses batch.
          :param query: applies a OData filter to the request
          :type query: Query or str
          :param order_by: orders the result set based on this condition
          :type order_by: Query or str
          :return: list of folders
          :rtype: list[ContactFolder]