/// <summary>
        /// Updates the specified group membership with the specified request.
        /// </summary>
        /// <param name="membershipId">It of the group membership to update.</param>
        /// <param name="memRequest">BoxGroupMembershipRequest object.</param>
        /// <param name="fields">Attribute(s) to include in the response.</param>
        /// <returns>The updated group membership.</returns>
        public async Task <BoxGroupMembership> UpdateGroupMembershipAsync(string membershipId, BoxGroupMembershipRequest memRequest, IEnumerable <string> fields = null)
        {
            membershipId.ThrowIfNullOrWhiteSpace("membershipId");
            memRequest.ThrowIfNull("memRequest").Role.ThrowIfNullOrWhiteSpace("role");

            BoxRequest request = new BoxRequest(_config.GroupMembershipEndpointUri, membershipId)
                                 .Param(ParamFields, fields)
                                 .Method(RequestMethod.Put)
                                 .Payload(_converter.Serialize <BoxGroupMembershipRequest>(memRequest));

            IBoxResponse <BoxGroupMembership> response = await ToResponseAsync <BoxGroupMembership>(request).ConfigureAwait(false);

            return(response.ResponseObject);
        }
        /// <summary>
        /// Add a user to a group
        /// </summary>
        /// <param name="membershipRequest">The request object that contains the user Id and group Id</param>
        /// <param name="fields">Optional fields to return</param>
        /// <returns>The group membership created</returns>
        public async Task <BoxGroupMembership> AddMemberToGroupAsync(BoxGroupMembershipRequest membershipRequest, List <string> fields = null)
        {
            membershipRequest.ThrowIfNull("membershipRequest")
            .Group.Id.ThrowIfNullOrWhiteSpace("Group.Id");
            membershipRequest.User.Id.ThrowIfNullOrWhiteSpace("User.Id");

            BoxRequest request = new BoxRequest(_config.GroupMembershipEndpointUri)
                                 .Method(RequestMethod.Post)
                                 .Param(ParamFields, fields)
                                 .Payload(_converter.Serialize <BoxGroupMembershipRequest>(membershipRequest));

            IBoxResponse <BoxGroupMembership> response = await ToResponseAsync <BoxGroupMembership>(request).ConfigureAwait(false);

            return(response.ResponseObject);
        }