code: func SetList(list runtime.Object, objects []runtime.Object) error {
  	itemsPtr, err := GetItemsPtr(list)
  	if err != nil {
  		return err
  	}
  	items, err := conversion.EnforcePtr(itemsPtr)
  	if err != nil {
  		return err
  	}
  	if items.Type() == objectSliceType {
  		items.Set(reflect.ValueOf(objects))
  		return nil
  	}
  	slice := reflect.MakeSlice(items.Type(), len(objects), len(objects))
  	for i := range objects {
  		dest := slice.Index(i)
  		src, err := conversion.EnforcePtr(objects[i])
  		if err != nil {
  			return err
  		}
  		if src.Type().AssignableTo(dest.Type()) {
  			dest.Set(src)
  		} else if src.Type().ConvertibleTo(dest.Type()) {
  			dest.Set(src.Convert(dest.Type()))
  		} else {
  			return fmt.Errorf("item[%d]: Type mismatch: Expected %v, got %v", i, dest.Type(), src.Type())
  		}
  	}
  	items.Set(slice)
  	return nil
  }
docs: // SetList sets the given list object's Items member have the elements given in
  // objects.
  // Returns an error if list is not a List type (does not have an Items member),
  // or if any of the objects are not of the right type.