def unsubscribe(self, subscription, drop_callback_reference=False, **kwargs):
        """Stop listening to a queue or a broadcast
        :param subscription: Subscription ID to cancel
        :param drop_callback_reference: Drop the reference to the registered
                                        callback function immediately. This
                                        means any buffered messages still in
                                        flight will not arrive at the intended
                                        destination and cause exceptions to be
                                        raised instead.
        :param **kwargs: Further parameters for the transport layer.
        """
        if subscription not in self.__subscriptions:
            raise workflows.Error("Attempting to unsubscribe unknown subscription")
        if self.__subscriptions[subscription]["unsubscribed"]:
            raise workflows.Error(
                "Attempting to unsubscribe already unsubscribed subscription"
            )
        self._unsubscribe(subscription, **kwargs)
        self.__subscriptions[subscription]["unsubscribed"] = True
        if drop_callback_reference:
            self.drop_callback_reference(subscription)
Stop listening to a queue or a broadcast
        :param subscription: Subscription ID to cancel
        :param drop_callback_reference: Drop the reference to the registered
                                        callback function immediately. This
                                        means any buffered messages still in
                                        flight will not arrive at the intended
                                        destination and cause exceptions to be
                                        raised instead.
        :param **kwargs: Further parameters for the transport layer.