/// <summary>
 ///     Update the collaborator's role and status in an existing collaboration
 /// </summary>
 /// <param name="onSuccess">Action to perform with the updated collaboration</param>
 /// <param name="onFailure">Action to perform following a failed Collaboration operation</param>
 /// <param name="collaboration">The collaboration to update</param>
 /// <param name="role">The collaborator's new role</param>
 /// <param name="status">The collaborator's new status</param>
 /// <param name="fields">The properties that should be set on the returned Collaboration object.  Type and Id are always set.  If left null, all properties will be set, which can increase response time.</param>
 public void Update(Action<Collaboration> onSuccess, Action<Error> onFailure, Collaboration collaboration, CollaborationRole role, Status status, IEnumerable<CollaborationField> fields = null)
 {
     GuardFromNull(collaboration, "collaboration");
     UpdateCollaboration(onSuccess, onFailure, collaboration.Id, role, status, fields);
 }
 /// <summary>
 ///     Update the collaborator's role and status in an existing collaboration
 /// </summary>
 /// <param name="collaboration">The collaboration to update</param>
 /// <param name="role">The collaborator's new role</param>
 /// <param name="status">The collaborator's new status</param>
 /// <param name="fields">The properties that should be set on the returned Collaboration object.  Type and Id are always set.  If left null, all properties will be set, which can increase response time.</param>
 /// <returns>The updated collaboration</returns>
 public Collaboration Update(Collaboration collaboration, CollaborationRole role, Status status, IEnumerable<CollaborationField> fields = null)
 {
     GuardFromNull(collaboration, "collaboration");
     return UpdateCollaboration(collaboration.Id, role, status, fields);
 }
 /// <summary>
 ///     Retrieve the details of an existing collaboration
 /// </summary>
 /// <param name="onSuccess">Action to perform with the existig collaboration</param>
 /// <param name="onFailure">Action to perform after a failed Collaboration operation </param>
 /// <param name="collaboration">The collaboration to retrieve</param>
 /// <param name="fields">The properties that should be set on the returned Collaboration object.  Type and Id are always set.  If left null, all properties will be set, which can increase response time.</param>
 public void Get(Action<Collaboration> onSuccess, Action<Error> onFailure, Collaboration collaboration, IEnumerable<CollaborationField> fields = null)
 {
     GuardFromNull(collaboration, "collaboration");
     GetCollaboration(onSuccess, onFailure, collaboration.Id, fields);
 }
 /// <summary>
 ///     Retrieve the details of an existing collaboration
 /// </summary>
 /// <param name="collaboration">The collaboration to retrieve</param>
 /// <param name="fields">The properties that should be set on the returned Collaboration object.  Type and Id are always set.  If left null, all properties will be set, which can increase response time.</param>
 /// <returns>The existing collaboration</returns>
 public Collaboration Get(Collaboration collaboration, IEnumerable<CollaborationField> fields = null)
 {
     GuardFromNull(collaboration, "collaboration");
     return GetCollaboration(collaboration.Id, fields);
 }
 /// <summary>
 ///     Delete a collaboration
 /// </summary>
 /// <param name="onSuccess">Action to perform after the collaboration is deleted</param>
 /// <param name="onFailure">Action to perform following a failed Collaboration operation</param>
 /// <param name="collaboration">The collaboration to delete</param>
 public void Delete(Action<IRestResponse> onSuccess, Action<Error> onFailure, Collaboration collaboration)
 {
     GuardFromNull(collaboration, "collaboration");
     DeleteCollaboration(onSuccess, onFailure, collaboration.Id);
 }
 /// <summary>
 ///     Delete a collaboration
 /// </summary>
 /// <param name="collaboration">The collaboration to delete</param>
 public void Delete(Collaboration collaboration)
 {
     GuardFromNull(collaboration, "collaboration");
     DeleteCollaboration(collaboration.Id);
 }