code: func (r *Request) SubResource(subresources ...string) *Request {
  	if r.err != nil {
  		return r
  	}
  	subresource := path.Join(subresources...)
  	if len(r.subresource) != 0 {
  		r.err = fmt.Errorf("subresource already set to %q, cannot change to %q", r.resource, subresource)
  		return r
  	}
  	for _, s := range subresources {
  		if ok, msg := validation.IsValidPathSegmentName(s); !ok {
  			r.err = fmt.Errorf("invalid subresource %q: %s", s, msg)
  			return r
  		}
  	}
  	r.subresource = subresource
  	return r
  }
docs: // SubResource sets a sub-resource path which can be multiple segments segment after the resource
  // name but before the suffix.