During our last session, two of my players got involved in a little PvP, and the Rogue was fireballed by the Wizard as a last act of defiance, hoping to take the Rogue with him as she died. 

The rogue was high enough level to have the Uncanny Dodge class feature, and wanted to know if it applied. I was unsure, and looked over the rules, and didn't come to a final conclusion. I ruled that it did, in the moment, but it didn't actually matter that much, since the fireball didn't do enough damage to bring down the rogue, even with a failed DEX save and without Uncanny Dodge. But I would like a ruling I can stand by in the future, so the short version of my question is as follows:

Would a spell that does damage via a saving throw count as an attack, for the purposes of Uncanny Dodge? Or does an attack have to include an attack roll?

Answers must be supported by either a quote from the Player's Handbook, Dungeon Master's Guide, or a tweet from one of the developers of the game.