code: func BucketsAccessed(q *flux.Spec) (readBuckets, writeBuckets []platform.BucketFilter, err error) {
  	err = q.Walk(func(o *flux.Operation) error {
  		bucketAwareOpSpec, ok := o.Spec.(BucketAwareOperationSpec)
  		if ok {
  			opBucketsRead, opBucketsWritten := bucketAwareOpSpec.BucketsAccessed()
  			readBuckets = append(readBuckets, opBucketsRead...)
  			writeBuckets = append(writeBuckets, opBucketsWritten...)
  		}
  		return nil
  	})
  
  	if err != nil {
  		return nil, nil, err
  	}
  
  	return readBuckets, writeBuckets, nil
  }
docs: // BucketsAccessed returns the set of buckets read and written by a query spec