async Task ClientContext.DeleteQueue(Queue queue)
        {
            var queueInfo = await _queueCache.Get(queue, _cancellationToken).ConfigureAwait(false);

            TransportLogMessages.DeleteQueue(queueInfo.Url);

            var response = await _amazonSqs.DeleteQueueAsync(queueInfo.Url, _cancellationToken).ConfigureAwait(false);

            response.EnsureSuccessfulResponse();

            _queueCache.RemoveByName(queue.EntityName);
        }
        async Task ClientContext.DeleteQueue(Queue queue)
        {
            var queueInfo = await _queueCache.Get(queue).ConfigureAwait(false);

            TransportLogMessages.DeleteQueue(queueInfo.Url);

            foreach (var subscriptionArn in queueInfo.SubscriptionArns)
            {
                TransportLogMessages.DeleteSubscription(queueInfo.Url, subscriptionArn);

                await DeleteQueueSubscription(subscriptionArn).ConfigureAwait(false);
            }

            var response = await _amazonSqs.DeleteQueueAsync(queueInfo.Url, CancellationToken.None).ConfigureAwait(false);

            response.EnsureSuccessfulResponse();

            _queueCache.RemoveByName(queue.EntityName);
        }