code: func (p *PreparedQuery) Get(args *structs.PreparedQuerySpecificRequest,
  	reply *structs.IndexedPreparedQueries) error {
  	if done, err := p.srv.forward("PreparedQuery.Get", args, args, reply); done {
  		return err
  	}
  
  	return p.srv.blockingQuery(
  		&args.QueryOptions,
  		&reply.QueryMeta,
  		func(ws memdb.WatchSet, state *state.Store) error {
  			index, query, err := state.PreparedQueryGet(ws, args.QueryID)
  			if err != nil {
  				return err
  			}
  			if query == nil {
  				return ErrQueryNotFound
  			}
  
  			// If no prefix ACL applies to this query, then they are
  			// always allowed to see it if they have the ID. We still
  			// have to filter the remaining object for tokens.
  			reply.Index = index
  			reply.Queries = structs.PreparedQueries{query}
  			if _, ok := query.GetACLPrefix(); !ok {
  				return p.srv.filterACL(args.Token, &reply.Queries[0])
  			}
  
  			// Otherwise, attempt to filter it the usual way.
  			if err := p.srv.filterACL(args.Token, reply); err != nil {
  				return err
  			}
  
  			// Since this is a GET of a specific query, if ACLs have
  			// prevented us from returning something that exists,
  			// then alert the user with a permission denied error.
  			if len(reply.Queries) == 0 {
  				p.srv.logger.Printf("[WARN] consul.prepared_query: Request to get prepared query '%s' denied due to ACLs", args.QueryID)
  				return acl.ErrPermissionDenied
  			}
  
  			return nil
  		})
  }
docs: // Get returns a single prepared query by ID.