internal override HttpRequestMessageBuilder BuildRequest(HttpRequestMessageBuilder requestMessageBuilder)

    {
        foreach (var eventType in Events)
        {
            requestMessageBuilder.AddQueryParameter("events", eventType.value);
        }
        requestMessageBuilder.AddQueryParameter("prefix", Prefix);
        requestMessageBuilder.AddQueryParameter("suffix", Suffix);

        requestMessageBuilder.ResponseWriter = async responseStream =>
        {
            using (responseStream)
            {
                var sr = new StreamReader(responseStream);
                while (!sr.EndOfStream)
                {
                    try
                    {
                        var line = await sr.ReadLineAsync();

                        if (EnableTrace)
                        {
                            Console.WriteLine("== ListenBucketNotificationsAsync read line ==");
                            Console.WriteLine(line);
                            Console.WriteLine("==============================================");
                        }

                        var trimmed = line.Trim();
                        if (trimmed.Length > 2)
                        {
                            NotificationObserver.OnNext(new MinioNotificationRaw(trimmed));
                        }
                    }
                    catch
                    {
                        break;
                    }
                }
            }
        };
        return(requestMessageBuilder);
    }