def _get_items_from_page(self,
                             item_type,
                             items_key,
                             resource,
                             ):
        """
        :type item_type: type
        :type items_key: str
        :type resource: Dict[str, Any]
        :rtype: Union[List[Dashboard], List[Issue]]
        """
        try:
            return [item_type(self._options, self._session, raw_issue_json) for raw_issue_json in
                    (resource[items_key] if items_key else resource)]
        except KeyError as e:
            # improving the error text so we know why it happened
            raise KeyError(str(e) + " : " + json.dumps(resource))