/// <summary>
        /// <para>Begins an asynchronous send to the members suspend route.</para>
        /// </summary>
        /// <param name="user">Identity of user to remove/suspend.</param>
        /// <param name="wipeData">If provided, controls if the user's data will be deleted on
        /// their linked devices.</param>
        /// <param name="callback">The method to be called when the asynchronous send is
        /// completed.</param>
        /// <param name="callbackState">A user provided object that distinguished this send
        /// from other send requests.</param>
        /// <returns>An object that represents the asynchronous send request.</returns>
        public sys.IAsyncResult BeginMembersSuspend(UserSelectorArg user,
                                                    bool wipeData = true,
                                                    sys.AsyncCallback callback = null,
                                                    object callbackState = null)
        {
            var membersDeactivateArg = new MembersDeactivateArg(user,
                                                                wipeData);

            return this.BeginMembersSuspend(membersDeactivateArg, callback, callbackState);
        }
        /// <summary>
        /// <para>Begins an asynchronous send to the members suspend route.</para>
        /// </summary>
        /// <param name="membersDeactivateArg">The request parameters.</param>
        /// <param name="callback">The method to be called when the asynchronous send is
        /// completed.</param>
        /// <param name="state">A user provided object that distinguished this send from other
        /// send requests.</param>
        /// <returns>An object that represents the asynchronous send request.</returns>
        public sys.IAsyncResult BeginMembersSuspend(MembersDeactivateArg membersDeactivateArg, sys.AsyncCallback callback, object state = null)
        {
            var task = this.MembersSuspendAsync(membersDeactivateArg);

            return enc.Util.ToApm(task, callback, state);
        }
        /// <summary>
        /// <para>Suspend a member from a team.</para>
        /// <para>Permission : Team member management</para>
        /// <para>Exactly one of team_member_id, email, or external_id must be provided to
        /// identify the user account.</para>
        /// </summary>
        /// <param name="user">Identity of user to remove/suspend.</param>
        /// <param name="wipeData">If provided, controls if the user's data will be deleted on
        /// their linked devices.</param>
        /// <returns>The task that represents the asynchronous send operation.</returns>
        /// <exception cref="Dropbox.Api.ApiException{MembersSuspendError}">Thrown if there is
        /// an error processing the request; This will contain a <see
        /// cref="MembersSuspendError"/>.</exception>
        public t.Task MembersSuspendAsync(UserSelectorArg user,
                                          bool wipeData = true)
        {
            var membersDeactivateArg = new MembersDeactivateArg(user,
                                                                wipeData);

            return this.MembersSuspendAsync(membersDeactivateArg);
        }
 /// <summary>
 /// <para>Suspend a member from a team.</para>
 /// <para>Permission : Team member management</para>
 /// <para>Exactly one of team_member_id, email, or external_id must be provided to
 /// identify the user account.</para>
 /// </summary>
 /// <param name="membersDeactivateArg">The request parameters</param>
 /// <returns>The task that represents the asynchronous send operation.</returns>
 /// <exception cref="Dropbox.Api.ApiException{MembersSuspendError}">Thrown if there is
 /// an error processing the request; This will contain a <see
 /// cref="MembersSuspendError"/>.</exception>
 public t.Task MembersSuspendAsync(MembersDeactivateArg membersDeactivateArg)
 {
     return this.Transport.SendRpcRequestAsync<MembersDeactivateArg, enc.Empty, MembersSuspendError>(membersDeactivateArg, "api", "/team/members/suspend", Dropbox.Api.Team.MembersDeactivateArg.Encoder, enc.EmptyDecoder.Instance, Dropbox.Api.Team.MembersSuspendError.Decoder);
 }