code: func LogResponseObject(ae *auditinternal.Event, obj runtime.Object, gv schema.GroupVersion, s runtime.NegotiatedSerializer) {
  	if ae == nil || ae.Level.Less(auditinternal.LevelMetadata) {
  		return
  	}
  	if status, ok := obj.(*metav1.Status); ok {
  		// selectively copy the bounded fields.
  		ae.ResponseStatus = &metav1.Status{
  			Status: status.Status,
  			Reason: status.Reason,
  			Code:   status.Code,
  		}
  	}
  
  	if ae.Level.Less(auditinternal.LevelRequestResponse) {
  		return
  	}
  	// TODO(audit): hook into the serializer to avoid double conversion
  	var err error
  	ae.ResponseObject, err = encodeObject(obj, gv, s)
  	if err != nil {
  		klog.Warningf("Audit failed for %q response: %v", reflect.TypeOf(obj).Name(), err)
  	}
  }
docs: // LogResponseObject fills in the response object into an audit event. The passed runtime.Object
  // will be converted to the given gv.