public async Task <SendMessageRequest> CreateSendMessageRequest(string countryId, TContent content) { // ensure queue is available var queues = await _sqsClient.ListQueuesAsync(new ListQueuesRequest() { QueueNamePrefix = "sitespeed" }); string expectedQueueName = $"sitespeed_{countryId}"; var queueUrl = queues.QueueUrls.FirstOrDefault(url => url.EndsWith(expectedQueueName)); if (queueUrl == null) { var result = await _sqsClient.CreateQueueAsync(expectedQueueName); queueUrl = result.QueueUrl; } // convert content and prep sqs message request var message = _messageSerializer.SerializeAsString(content); return(new SendMessageRequest() { QueueUrl = queueUrl, MessageBody = message }); }