/// <summary>
        /// Construct a sink posting to the specified database.
        /// </summary>
        /// <param name="options">Options for configuring how the sink behaves, may NOT be null.</param>
        /// <param name="kinesisClient"></param>
        public KinesisSink(KinesisStreamSinkOptions options,IAmazonKinesis kinesisClient) : 
            base(options.BatchPostingLimit, options.Period)
        {
            _state = new KinesisSinkState(options,kinesisClient);

            _minimumAcceptedLevel = _state.Options.MinimumLogEventLevel;
        }
        public DurableKinesisSink(KinesisStreamSinkOptions options, IAmazonKinesis kinesisClient)
        {
            var state = new KinesisSinkState(options, kinesisClient);

            if (string.IsNullOrWhiteSpace(options.BufferBaseFilename))
            {
                throw new ArgumentException("Cannot create the durable Amazon Kinesis sink without a buffer base file name.");
            }

            _sink = new RollingFileSink(
                options.BufferBaseFilename + "-{Date}.json",
                state.DurableFormatter,
                options.BufferFileSizeLimitBytes,
                null);

            _shipper = new HttpLogShipper(state);

            if (options.OnLogSendError != null)
            {
                _shipper.LogSendError += options.OnLogSendError;
            }
        }