in play-v29/src/main/scala/com/gu/googleauth/auth.scala [171:177]
def discoveryDocument()(implicit context: ExecutionContext, ws: WSClient): Future[DiscoveryDocument] =
if (discoveryDocumentHolder.isDefined) discoveryDocumentHolder.get
else {
val discoveryDocumentFuture = ws.url(DiscoveryDocument.url).get().map(r => DiscoveryDocument.fromJson(r.json))
discoveryDocumentHolder = Some(discoveryDocumentFuture)
discoveryDocumentFuture
}