Get data from queue

        Fetch fresh data from the named queue.
        Using session identifier you call continously the `#fetch` method to drain the named queue.

        :calls: ``get /sync/{session_id}/queues/main``
        :param string device_uuid: Device's UUID for which to perform synchronization.
        :param string session_id: Unique identifier of a synchronization session.
        :param string queue: (optional) Queue name.
        :return: List of dictionaries that support attribute-style access,
            which represent resources (data) and associated meta data (meta).
            Empty list if there is no more data to synchronize.
        :rtype: list

def fetch(self, device_uuid, session_id):
        """
        Get data from queue

        Fetch fresh data from the named queue.
        Using session identifier you call continously the `#fetch` method to drain the named queue.

        :calls: ``get /sync/{session_id}/queues/main``
        :param string device_uuid: Device's UUID for which to perform synchronization.
        :param string session_id: Unique identifier of a synchronization session.
        :param string queue: (optional) Queue name.
        :return: List of dictionaries that support attribute-style access,
            which represent resources (data) and associated meta data (meta).
            Empty list if there is no more data to synchronize.
        :rtype: list
        """

        status_code, _, root = self.http_client.get("/sync/{session_id}/queues/main".format(session_id=session_id),
                                                    params=None,
                                                    headers=self.build_headers(device_uuid),
                                                    raw=True)

        return [] if status_code == 204 else root['items']