public static async Task <Model> ModifyAsync(IVoiceChannel channel, BaseDiscordClient client,
                                                     Action <VoiceChannelProperties> func,
                                                     RequestOptions options)
        {
            var args = new VoiceChannelProperties();

            func(args);
            var apiArgs = new API.Rest.ModifyVoiceChannelParams
            {
                Bitrate   = args.Bitrate,
                Name      = args.Name,
                Position  = args.Position,
                UserLimit = args.UserLimit.IsSpecified ? (args.UserLimit.Value ?? 0) : Optional.Create <int>()
            };

            return(await client.ApiClient.ModifyGuildChannelAsync(channel.Id, apiArgs, options).ConfigureAwait(false));
        }