natskell-1.0.0.1: jetstream/JetStream/Stream/API.hs
module JetStream.Stream.API
( StreamAPI
, create
, createOrUpdate
, update
, info
, getMessage
, deleteMessage
, delete
, purge
, list
, names
, Stream
, streamName
, lookupStream
, createStream
, getStreamInfo
, RetentionPolicy (..)
, StorageType (..)
, DiscardPolicy (..)
, StreamConfig
, streamConfigName
, streamConfigSubjects
, streamConfigRetention
, streamConfigStorage
, streamConfigDiscard
, streamConfigMaxMessages
, streamConfigMaxBytes
, streamConfigMaxAge
, streamConfigReplicas
, streamConfigDuplicateWindow
, streamConfigAllowDirect
, StreamConfigOption
, withRetention
, withStorage
, withDiscard
, withMaxMessages
, withMaxBytes
, withMaxAge
, withReplicas
, withDuplicateWindow
, withAllowDirect
, PurgeStreamOption
, withPurgeSubject
, withPurgeSequence
, withPurgeKeep
, StreamListOption
, withStreamListOffset
, withStreamListSubject
, StreamMessage
, streamMessageSubject
, streamMessageSequence
, streamMessageHeadersRaw
, streamMessagePayload
, streamMessageTime
, StreamMessageSelector (..)
, StreamMessageDeleteMode (..)
, DeleteStreamMessageResponse
, deleteStreamMessageSuccess
, StreamInfo
, streamInfoConfig
, streamInfoCreated
, streamInfoState
, streamInfoCluster
, streamInfoMirror
, streamInfoSources
, StreamState
, streamStateMessages
, streamStateBytes
, streamStateFirstSequence
, streamStateFirstTime
, streamStateLastSequence
, streamStateLastTime
, streamStateConsumerCount
, streamStateDeleted
, streamStateNumDeleted
, streamStateNumSubjects
, StreamCluster
, streamClusterName
, streamClusterLeader
, streamClusterReplicas
, StreamPeer
, streamPeerName
, streamPeerCurrent
, streamPeerOffline
, streamPeerActive
, streamPeerLag
, StreamSourceInfo
, streamSourceInfoName
, streamSourceInfoFilterSubject
, streamSourceInfoLag
, streamSourceInfoActive
, DeleteStreamResponse
, deleteStreamSuccess
, PurgeStreamResponse
, purgeStreamSuccess
, purgeStreamPurged
, StreamListResponse
, streamListTotal
, streamListOffset
, streamListLimit
, streamListStreams
, StreamNamesResponse
, streamNamesTotal
, streamNamesOffset
, streamNamesLimit
, streamNamesStreams
) where
import JetStream.Error (JetStreamError)
import JetStream.Stream.Types
import JetStream.Types
( JetStreamRequestOption
, StreamName
, Subject
)
-- | Look up a stream and return a stable resource handle.
lookupStream
:: StreamAPI
-> StreamName
-> [JetStreamRequestOption]
-> IO (Either JetStreamError Stream)
lookupStream api name requestOptions =
fmap (fmap (const (Stream name))) (info api name requestOptions)
-- | Create a stream and return a stable resource handle.
createStream
:: StreamAPI
-> StreamName
-> [Subject]
-> [StreamConfigOption]
-> [JetStreamRequestOption]
-> IO (Either JetStreamError Stream)
createStream api name subjects configOptions requestOptions =
fmap (fmap (const (Stream name)))
(create api name subjects configOptions requestOptions)
-- | Read the current info for a stream handle.
getStreamInfo
:: StreamAPI
-> Stream
-> [JetStreamRequestOption]
-> IO (Either JetStreamError StreamInfo)
getStreamInfo api stream =
info api (streamName stream)