docs: def get_all_responses(self, receive_timeout_in_seconds=None):
          """
          Receive all available responses from the transport as a generator.
  
          :param receive_timeout_in_seconds: How long to block without receiving a message before raising
                                             `MessageReceiveTimeout` (defaults to five seconds unless the settings are
                                             otherwise).
          :type receive_timeout_in_seconds: int
  
          :return: A generator that yields (request ID, job response)
          :rtype: generator
  
          :raise: ConnectionError, MessageReceiveError, MessageReceiveTimeout, InvalidMessage, StopIteration
          """
  
          wrapper = self._make_middleware_stack(
              [m.response for m in self.middleware],
              self._get_response,
          )
          try:
              while True:
                  with self.metrics.timer('client.receive.including_middleware', resolution=TimerResolution.MICROSECONDS):
                      request_id, response = wrapper(receive_timeout_in_seconds)
                  if response is None:
                      break
                  yield request_id, response
          finally:
              self.metrics.commit()