<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def all(self):
 """ This method retrieve an iterator with all the available types. return: iterator of crossref document types Example: [{'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