code: func (s *Intention) Get(
  	args *structs.IntentionQueryRequest,
  	reply *structs.IndexedIntentions) error {
  	// Forward if necessary
  	if done, err := s.srv.forward("Intention.Get", args, args, reply); done {
  		return err
  	}
  
  	return s.srv.blockingQuery(
  		&args.QueryOptions,
  		&reply.QueryMeta,
  		func(ws memdb.WatchSet, state *state.Store) error {
  			index, ixn, err := state.IntentionGet(ws, args.IntentionID)
  			if err != nil {
  				return err
  			}
  			if ixn == nil {
  				return ErrIntentionNotFound
  			}
  
  			reply.Index = index
  			reply.Intentions = structs.Intentions{ixn}
  
  			// Filter
  			if err := s.srv.filterACL(args.Token, reply); err != nil {
  				return err
  			}
  
  			// If ACLs prevented any responses, error
  			if len(reply.Intentions) == 0 {
  				s.srv.logger.Printf("[WARN] consul.intention: Request to get intention '%s' denied due to ACLs", args.IntentionID)
  				return acl.ErrPermissionDenied
  			}
  
  			return nil
  		},
  	)
  }
docs: // Get returns a single intention by ID.