natskell-0.3.0.0: jetstream/JetStream/Consumer/API.hs
module JetStream.Consumer.API
( ConsumerAPI (..)
, AckPolicy (..)
, ConsumerAction (..)
, ConsumerConfig (..)
, ConsumerConfigOption
, ConsumerFilter (..)
, ConsumerKind (..)
, ConsumerInfo (..)
, ConsumerListOption
, ConsumerListResponse (..)
, ConsumerNamesResponse (..)
, ConsumerPauseResponse (..)
, ConsumerResetOption
, ConsumerResetResponse (..)
, ConsumerSequenceInfo (..)
, ConsumerTarget (..)
, DeleteConsumerResponse (..)
, DeliverPolicy (..)
, ReplayPolicy (..)
, withConsumerAckPolicy
, withConsumerAckWait
, withConsumerDescription
, withConsumerDeliverGroup
, withConsumerDeliverPolicy
, withConsumerFilter
, withConsumerHeadersOnly
, withConsumerIdleHeartbeat
, withConsumerInactiveThreshold
, withConsumerListOffset
, withConsumerMaxAckPending
, withConsumerMaxDeliver
, withConsumerMaxWaiting
, withConsumerMemoryStorage
, withConsumerReplicas
, withConsumerReplayPolicy
, withConsumerResetSequence
) where
import Data.Time.Clock (UTCTime)
import JetStream.Consumer.Types
import JetStream.Error (JetStreamError)
import JetStream.Types (ConsumerName, StreamName)
-- | Consumer management operations.
data ConsumerAPI = ConsumerAPI
{ putConsumer :: StreamName -> ConsumerAction -> ConsumerTarget -> ConsumerKind -> [ConsumerConfigOption] -> IO (Either JetStreamError ConsumerInfo)
-- ^ Create, update, or create-or-update a stream consumer.
, consumerInfo :: StreamName -> ConsumerName -> IO (Either JetStreamError ConsumerInfo)
-- ^ Fetch consumer configuration and state.
, pauseConsumer :: StreamName -> ConsumerName -> UTCTime -> IO (Either JetStreamError ConsumerPauseResponse)
-- ^ Pause a consumer until the given time.
, resumeConsumer :: StreamName -> ConsumerName -> IO (Either JetStreamError ConsumerPauseResponse)
-- ^ Resume a paused consumer.
, resetConsumer :: StreamName -> ConsumerName -> [ConsumerResetOption] -> IO (Either JetStreamError ConsumerResetResponse)
-- ^ Reset a consumer, optionally to a stream sequence.
, deleteConsumer :: StreamName -> ConsumerName -> IO (Either JetStreamError DeleteConsumerResponse)
-- ^ Delete a consumer from a stream.
, listConsumers :: StreamName -> [ConsumerListOption] -> IO (Either JetStreamError ConsumerListResponse)
-- ^ List consumers for a stream.
, consumerNames :: StreamName -> [ConsumerListOption] -> IO (Either JetStreamError ConsumerNamesResponse)
-- ^ List consumer names for a stream.
}