def all(self):
        """
        This method retrieve an iterator with all the available types.

        return: iterator of crossref document types

        Example:
            >>> from crossref.restful import Types
            >>> types = Types()
            >>> [i for i in types.all()]
            [{'label': 'Book Section', 'id': 'book-section'},
            {'label': 'Monograph', 'id': 'monograph'},
            {'label': 'Report', 'id': 'report'},
            {'label': 'Book Track', 'id': 'book-track'},
            {'label': 'Journal Article', 'id': 'journal-article'},
            {'label': 'Part', 'id': 'book-part'},
            ...
            }]
        """
        request_url = build_url_endpoint(self.ENDPOINT, self.context)
        request_params = dict(self.request_params)

        result = self.do_http_request(
            'get',
            request_url,
            data=request_params,
            custom_header=str(self.etiquette)
        )

        if result.status_code == 404:
            raise StopIteration()

        result = result.json()

        for item in result['message']['items']:
            yield item
This method retrieve an iterator with all the available types.

        return: iterator of crossref document types

        Example:
            >>> from crossref.restful import Types
            >>> types = Types()
            >>> [i for i in types.all()]
            [{'label': 'Book Section', 'id': 'book-section'},
            {'label': 'Monograph', 'id': 'monograph'},
            {'label': 'Report', 'id': 'report'},
            {'label': 'Book Track', 'id': 'book-track'},
            {'label': 'Journal Article', 'id': 'journal-article'},
            {'label': 'Part', 'id': 'book-part'},
            ...
            }]