/// <summary>
        /// <para>Begins an asynchronous send to the groups members set access type
        /// route.</para>
        /// </summary>
        /// <param name="group">Specify a group.</param>
        /// <param name="user">Identity of a user that is a member of <paramref name="@group"
        /// />.</param>
        /// <param name="accessType">New group access type the user will have.</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 BeginGroupsMembersSetAccessType(GroupSelector @group,
                                                                UserSelectorArg user,
                                                                GroupAccessType accessType,
                                                                sys.AsyncCallback callback,
                                                                object callbackState = null)
        {
            var groupMembersSetAccessTypeArg = new GroupMembersSetAccessTypeArg(@group,
                                                                                user,
                                                                                accessType);

            return this.BeginGroupsMembersSetAccessType(groupMembersSetAccessTypeArg, callback, callbackState);
        }
        /// <summary>
        /// <para>Begins an asynchronous send to the groups members set access type
        /// route.</para>
        /// </summary>
        /// <param name="groupMembersSetAccessTypeArg">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 BeginGroupsMembersSetAccessType(GroupMembersSetAccessTypeArg groupMembersSetAccessTypeArg, sys.AsyncCallback callback, object state = null)
        {
            var task = this.GroupsMembersSetAccessTypeAsync(groupMembersSetAccessTypeArg);

            return enc.Util.ToApm(task, callback, state);
        }
        /// <summary>
        /// <para>Sets a member's access type in a group.</para>
        /// <para>Permission : Team member management</para>
        /// </summary>
        /// <param name="group">Specify a group.</param>
        /// <param name="user">Identity of a user that is a member of <paramref name="@group"
        /// />.</param>
        /// <param name="accessType">New group access type the user will have.</param>
        /// <returns>The task that represents the asynchronous send operation. The TResult
        /// parameter contains the response from the server.</returns>
        /// <exception cref="Dropbox.Api.ApiException{GroupMemberSelectorError}">Thrown if
        /// there is an error processing the request; This will contain a <see
        /// cref="GroupMemberSelectorError"/>.</exception>
        public t.Task<col.List<GroupsGetInfoItem>> GroupsMembersSetAccessTypeAsync(GroupSelector @group,
                                                                                   UserSelectorArg user,
                                                                                   GroupAccessType accessType)
        {
            var groupMembersSetAccessTypeArg = new GroupMembersSetAccessTypeArg(@group,
                                                                                user,
                                                                                accessType);

            return this.GroupsMembersSetAccessTypeAsync(groupMembersSetAccessTypeArg);
        }
 /// <summary>
 /// <para>Sets a member's access type in a group.</para>
 /// <para>Permission : Team member management</para>
 /// </summary>
 /// <param name="groupMembersSetAccessTypeArg">The request parameters</param>
 /// <returns>The task that represents the asynchronous send operation. The TResult
 /// parameter contains the response from the server.</returns>
 /// <exception cref="Dropbox.Api.ApiException{GroupMemberSelectorError}">Thrown if
 /// there is an error processing the request; This will contain a <see
 /// cref="GroupMemberSelectorError"/>.</exception>
 public t.Task<col.List<GroupsGetInfoItem>> GroupsMembersSetAccessTypeAsync(GroupMembersSetAccessTypeArg groupMembersSetAccessTypeArg)
 {
     return this.Transport.SendRpcRequestAsync<GroupMembersSetAccessTypeArg, col.List<GroupsGetInfoItem>, GroupMemberSelectorError>(groupMembersSetAccessTypeArg, "api", "/team/groups/members/set_access_type", Dropbox.Api.Team.GroupMembersSetAccessTypeArg.Encoder, enc.Decoder.CreateListDecoder(Dropbox.Api.Team.GroupsGetInfoItem.Decoder), Dropbox.Api.Team.GroupMemberSelectorError.Decoder);
 }