code: func TaskArchival(c context.Context, state *coordinator.LogStreamState, delay time.Duration) error {
  	// Now task the archival.
  	state.Updated = clock.Now(c).UTC()
  	state.ArchivalKey = []byte{'1'} // Use a fake key just to signal that we've tasked the archival.
  	if err := ds.Put(c, state); err != nil {
  		log.Fields{
  			log.ErrorKey: err,
  		}.Errorf(c, "Failed to Put() LogStream.")
  		return grpcutil.Internal
  	}
  
  	project := string(coordinator.ProjectFromNamespace(state.Parent.Namespace()))
  	id := string(state.ID())
  	t, err := tqTask(&logdog.ArchiveTask{Project: project, Id: id})
  	if err != nil {
  		log.WithError(err).Errorf(c, "could not create archival task")
  		return grpcutil.Internal
  	}
  	t.Delay = delay
  	if err := taskqueue.Add(c, ArchiveQueueName, t); err != nil {
  		log.WithError(err).Errorf(c, "could not task archival")
  		return grpcutil.Internal
  	}
  	return nil
  
  }
docs: // TaskArchival tasks an archival of a stream with the given delay.