code: func GetItemsPtr(list runtime.Object) (interface{}, error) {
  	v, err := conversion.EnforcePtr(list)
  	if err != nil {
  		return nil, err
  	}
  	items := v.FieldByName("Items")
  	if !items.IsValid() {
  		return nil, fmt.Errorf("no Items field in %#v", list)
  	}
  	switch items.Kind() {
  	case reflect.Interface, reflect.Ptr:
  		target := reflect.TypeOf(items.Interface()).Elem()
  		if target.Kind() != reflect.Slice {
  			return nil, fmt.Errorf("items: Expected slice, got %s", target.Kind())
  		}
  		return items.Interface(), nil
  	case reflect.Slice:
  		return items.Addr().Interface(), nil
  	default:
  		return nil, fmt.Errorf("items: Expected slice, got %s", items.Kind())
  	}
  }
docs: // GetItemsPtr returns a pointer to the list object's Items member.
  // If 'list' doesn't have an Items member, it's not really a list type
  // and an error will be returned.
  // This function will either return a pointer to a slice, or an error, but not both.