code: func GetAuthDBSnapshot(c context.Context, id string) (*protocol.AuthDB, error) {
  	report := durationReporter(c, getSnapshotDuration)
  	logging.Debugf(c, "Fetching AuthDB snapshot from the datastore")
  	defer logging.Debugf(c, "AuthDB snapshot fetched")
  
  	c = ds.WithoutTransaction(defaultNS(c))
  	snap := Snapshot{ID: id}
  	switch err := ds.Get(c, &snap); {
  	case err == ds.ErrNoSuchEntity:
  		report("ERROR_NO_SNAPSHOT")
  		return nil, err // not transient
  	case err != nil:
  		report("ERROR_TRANSIENT")
  		return nil, transient.Tag.Apply(err)
  	}
  
  	db, err := service.InflateAuthDB(snap.AuthDBDeflated)
  	if err != nil {
  		report("ERROR_INFLATION")
  		return nil, err
  	}
  
  	report("SUCCESS")
  	return db, nil
  }
docs: // GetAuthDBSnapshot fetches, inflates and deserializes AuthDB snapshot.