'Get a list of board resources.
:param startAt: The starting index of the returned boards. Base index: 0.
:param maxResults: The maximum number of boards to return per page. Default: 50
:param type: Filters results to boards of the specified type. Valid values: scrum, kanban.
:param name: Filters results to boards that match or partially match the specified name.
:rtype: ResultList[Board]
When old GreenHopper private API is used, paging is not enabled and all parameters are ignored.'

@translate_resource_args
def boards(self, startAt=0, maxResults=50, type=None, name=None):

    params = {}
    if type:
        params[u'type'] = type
    if name:
        params[u'name'] = name
    if (self._options[u'agile_rest_path'] == GreenHopperResource.GREENHOPPER_REST_PATH):
        if (startAt or maxResults or params):
            warnings.warn(u'Old    private    GreenHopper    API    is    used,    all    parameters    will    be    ignored.', Warning)
        r_json = self._get_json(u'rapidviews/list', base=self.AGILE_BASE_URL)
        boards = [Board(self._options, self._session, raw_boards_json) for raw_boards_json in r_json[u'views']]
        return ResultList(boards, 0, len(boards), len(boards), True)
    else:
        return self._fetch_pages(Board, u'values', u'board', startAt, maxResults, params, base=self.AGILE_BASE_URL)
