def METHOD_NAME(self, delete=True, wait_time_seconds=0, visibility_timeout=60):
    """
    Receive a message from the queue.
    Args:
        delete (bool, optional): delete after receiving. Defaults to True.
        wait_time_seconds (int, optional): how long should the request wait for a queue message.
        visibility_timeout (int, optional): how long should the message be invisible to other receivers
    Returns:
        dict: The fetched message. If no messages, returns None.
    """
    response = self.sqs.METHOD_NAME(
        QueueUrl=self.sqs_url,
        MaxNumberOfMessages=1,
        MessageAttributeNames=["All"],
        VisibilityTimeout=visibility_timeout,
        WaitTimeSeconds=wait_time_seconds,
    )
    if "Messages" in response.keys():
        message = response["Messages"][0]
        receipt_handle = message["ReceiptHandle"]
        if delete:
            # Delete received message from queue
            self.sqs.delete_message(QueueUrl=self.sqs_url, ReceiptHandle=receipt_handle)
        return message
    return None