-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | A Kafka client for Haskell.
--   
--   A Kafka client for Haskell. The protocol module is stable (the only
--   changes will be to support changes in the Kafka protocol). The API is
--   functional but subject to change.
@package milena
@version 0.5.2.2

module Network.Kafka.Protocol
newtype Request
Request :: (CorrelationId, ClientId, RequestMessage) -> Request
data KafkaError

-- | <tt>0</tt> No error--it worked!
NoError :: KafkaError

-- | <tt>-1</tt> An unexpected server error
Unknown :: KafkaError

-- | <tt>1</tt> The requested offset is outside the range of offsets
--   maintained by the server for the given topic/partition.
OffsetOutOfRange :: KafkaError

-- | <tt>2</tt> This indicates that a message contents does not match its
--   CRC
InvalidMessage :: KafkaError

-- | <tt>3</tt> This request is for a topic or partition that does not
--   exist on this broker.
UnknownTopicOrPartition :: KafkaError

-- | <tt>4</tt> The message has a negative size
InvalidMessageSize :: KafkaError

-- | <tt>5</tt> This error is thrown if we are in the middle of a
--   leadership election and there is currently no leader for this
--   partition and hence it is unavailable for writes.
LeaderNotAvailable :: KafkaError

-- | <tt>6</tt> This error is thrown if the client attempts to send
--   messages to a replica that is not the leader for some partition. It
--   indicates that the clients metadata is out of date.
NotLeaderForPartition :: KafkaError

-- | <tt>7</tt> This error is thrown if the request exceeds the
--   user-specified time limit in the request.
RequestTimedOut :: KafkaError

-- | <tt>8</tt> This is not a client facing error and is used mostly by
--   tools when a broker is not alive.
BrokerNotAvailable :: KafkaError

-- | <tt>9</tt> If replica is expected on a broker, but is not.
ReplicaNotAvailable :: KafkaError

-- | <tt>10</tt> The server has a configurable maximum message size to
--   avoid unbounded memory allocation. This error is thrown if the client
--   attempt to produce a message larger than this maximum.
MessageSizeTooLarge :: KafkaError

-- | <tt>11</tt> Internal error code for broker-to-broker communication.
StaleControllerEpochCode :: KafkaError

-- | <tt>12</tt> If you specify a string larger than configured maximum for
--   offset metadata
OffsetMetadataTooLargeCode :: KafkaError

-- | <tt>14</tt> The broker returns this error code for an offset fetch
--   request if it is still loading offsets (after a leader change for that
--   offsets topic partition).
OffsetsLoadInProgressCode :: KafkaError

-- | <tt>15</tt> The broker returns this error code for consumer metadata
--   requests or offset commit requests if the offsets topic has not yet
--   been created.
ConsumerCoordinatorNotAvailableCode :: KafkaError

-- | <tt>16</tt> The broker returns this error code if it receives an
--   offset fetch or commit request for a consumer group that it is not a
--   coordinator for.
NotCoordinatorForConsumerCode :: KafkaError
newtype Metadata
Metadata :: KafkaString -> Metadata
newtype ConsumerGroup
ConsumerGroup :: KafkaString -> ConsumerGroup
newtype OffsetFetchRequest
OffsetFetchReq :: (ConsumerGroup, [(TopicName, [Partition])]) -> OffsetFetchRequest
newtype OffsetCommitRequest
OffsetCommitReq :: (ConsumerGroup, [(TopicName, [(Partition, Offset, Time, Metadata)])]) -> OffsetCommitRequest
newtype GroupCoordinatorRequest
GroupCoordinatorReq :: ConsumerGroup -> GroupCoordinatorRequest
data ResponseMessage
MetadataResponse :: MetadataResponse -> ResponseMessage
ProduceResponse :: ProduceResponse -> ResponseMessage
FetchResponse :: FetchResponse -> ResponseMessage
OffsetResponse :: OffsetResponse -> ResponseMessage
OffsetCommitResponse :: OffsetCommitResponse -> ResponseMessage
OffsetFetchResponse :: OffsetFetchResponse -> ResponseMessage
GroupCoordinatorResponse :: GroupCoordinatorResponse -> ResponseMessage
newtype Value
Value :: Maybe KafkaBytes -> Value
[_valueBytes] :: Value -> Maybe KafkaBytes
newtype Key
Key :: Maybe KafkaBytes -> Key
[_keyBytes] :: Key -> Maybe KafkaBytes
data Attributes
Attributes :: CompressionCodec -> Attributes
[_compressionCodec] :: Attributes -> CompressionCodec
newtype MagicByte
MagicByte :: Int8 -> MagicByte
newtype Crc
Crc :: Int32 -> Crc
data CompressionCodec
NoCompression :: CompressionCodec
Gzip :: CompressionCodec
newtype Message
Message :: (Crc, MagicByte, Attributes, Key, Value) -> Message
[_messageFields] :: Message -> (Crc, MagicByte, Attributes, Key, Value)
newtype Offset
Offset :: Int64 -> Offset
data MessageSetMember
MessageSetMember :: Offset -> Message -> MessageSetMember
[_setOffset] :: MessageSetMember -> Offset
[_setMessage] :: MessageSetMember -> Message
data MessageSet
MessageSet :: CompressionCodec -> [MessageSetMember] -> MessageSet
[_codec] :: MessageSet -> CompressionCodec
[_messageSetMembers] :: MessageSet -> [MessageSetMember]
newtype Partition
Partition :: Int32 -> Partition
newtype Timeout
Timeout :: Int32 -> Timeout
newtype RequiredAcks
RequiredAcks :: Int16 -> RequiredAcks
newtype ProduceRequest
ProduceReq :: (RequiredAcks, Timeout, [(TopicName, [(Partition, MessageSet)])]) -> ProduceRequest
newtype MaxBytes
MaxBytes :: Int32 -> MaxBytes
newtype MinBytes
MinBytes :: Int32 -> MinBytes
newtype MaxWaitTime
MaxWaitTime :: Int32 -> MaxWaitTime
newtype ReplicaId
ReplicaId :: Int32 -> ReplicaId
newtype FetchRequest
FetchReq :: (ReplicaId, MaxWaitTime, MinBytes, [(TopicName, [(Partition, Offset, MaxBytes)])]) -> FetchRequest
newtype MaxNumberOfOffsets
MaxNumberOfOffsets :: Int32 -> MaxNumberOfOffsets
newtype Time
Time :: Int64 -> Time
[_timeInt] :: Time -> Int64
newtype OffsetRequest
OffsetReq :: (ReplicaId, [(TopicName, [(Partition, Time, MaxNumberOfOffsets)])]) -> OffsetRequest
newtype OffsetFetchResponse
OffsetFetchResp :: [(TopicName, [(Partition, Offset, Metadata, KafkaError)])] -> OffsetFetchResponse
newtype OffsetCommitResponse
OffsetCommitResp :: [(TopicName, [(Partition, KafkaError)])] -> OffsetCommitResponse
newtype Isr
Isr :: [Int32] -> Isr
newtype Replicas
Replicas :: [Int32] -> Replicas
newtype Leader
Leader :: Maybe Int32 -> Leader
[_leaderId] :: Leader -> Maybe Int32
newtype PartitionMetadata
PartitionMetadata :: (KafkaError, Partition, Leader, Replicas, Isr) -> PartitionMetadata
[_partitionMetadataFields] :: PartitionMetadata -> (KafkaError, Partition, Leader, Replicas, Isr)
newtype TopicMetadata
TopicMetadata :: (KafkaError, TopicName, [PartitionMetadata]) -> TopicMetadata
[_topicMetadataFields] :: TopicMetadata -> (KafkaError, TopicName, [PartitionMetadata])
newtype Port
Port :: Int32 -> Port
[_portInt] :: Port -> Int32
newtype Host
Host :: KafkaString -> Host
[_hostKString] :: Host -> KafkaString
newtype NodeId
NodeId :: Int32 -> NodeId
[_nodeId] :: NodeId -> Int32
newtype Broker
Broker :: (NodeId, Host, Port) -> Broker
[_brokerFields] :: Broker -> (NodeId, Host, Port)
newtype MetadataResponse
MetadataResp :: ([Broker], [TopicMetadata]) -> MetadataResponse
[_metadataResponseFields] :: MetadataResponse -> ([Broker], [TopicMetadata])
newtype FetchResponse
FetchResp :: [(TopicName, [(Partition, KafkaError, Offset, MessageSet)])] -> FetchResponse
[_fetchResponseFields] :: FetchResponse -> [(TopicName, [(Partition, KafkaError, Offset, MessageSet)])]
newtype PartitionOffsets
PartitionOffsets :: (Partition, KafkaError, [Offset]) -> PartitionOffsets
[_partitionOffsetsFields] :: PartitionOffsets -> (Partition, KafkaError, [Offset])
newtype OffsetResponse
OffsetResp :: [(TopicName, [PartitionOffsets])] -> OffsetResponse
[_offsetResponseFields] :: OffsetResponse -> [(TopicName, [PartitionOffsets])]
newtype ProduceResponse
ProduceResp :: [(TopicName, [(Partition, KafkaError, Offset)])] -> ProduceResponse
[_produceResponseFields] :: ProduceResponse -> [(TopicName, [(Partition, KafkaError, Offset)])]
newtype KafkaString
KString :: ByteString -> KafkaString
[_kString] :: KafkaString -> ByteString
newtype KafkaBytes
KBytes :: ByteString -> KafkaBytes
[_kafkaByteString] :: KafkaBytes -> ByteString
newtype TopicName
TName :: KafkaString -> TopicName
[_tName] :: TopicName -> KafkaString
newtype MetadataRequest
MetadataReq :: [TopicName] -> MetadataRequest
data RequestMessage
MetadataRequest :: MetadataRequest -> RequestMessage
ProduceRequest :: ProduceRequest -> RequestMessage
FetchRequest :: FetchRequest -> RequestMessage
OffsetRequest :: OffsetRequest -> RequestMessage
OffsetCommitRequest :: OffsetCommitRequest -> RequestMessage
OffsetFetchRequest :: OffsetFetchRequest -> RequestMessage
GroupCoordinatorRequest :: GroupCoordinatorRequest -> RequestMessage
newtype ClientId
ClientId :: KafkaString -> ClientId
newtype CorrelationId
CorrelationId :: Int32 -> CorrelationId
newtype ApiVersion
ApiVersion :: Int16 -> ApiVersion
newtype ApiKey
ApiKey :: Int16 -> ApiKey
newtype GroupCoordinatorResponse
GroupCoordinatorResp :: (KafkaError, Broker) -> GroupCoordinatorResponse
class Deserializable a
deserialize :: Deserializable a => Get a
class Serializable a
serialize :: Serializable a => a -> Put
data ReqResp a
[MetadataRR] :: MonadIO m => MetadataRequest -> ReqResp (m MetadataResponse)
[ProduceRR] :: MonadIO m => ProduceRequest -> ReqResp (m ProduceResponse)
[FetchRR] :: MonadIO m => FetchRequest -> ReqResp (m FetchResponse)
[OffsetRR] :: MonadIO m => OffsetRequest -> ReqResp (m OffsetResponse)
doRequest' :: (Deserializable a, MonadIO m) => CorrelationId -> Handle -> Request -> m (Either String a)
doRequest :: MonadIO m => ClientId -> CorrelationId -> Handle -> ReqResp (m a) -> m (Either String a)
errorKafka :: KafkaError -> Int16
requestBytes :: Request -> ByteString
apiVersion :: RequestMessage -> ApiVersion
apiKey :: RequestMessage -> ApiKey
compressionCodecFromValue :: Int8 -> Maybe CompressionCodec
tName :: Iso' TopicName KafkaString
kafkaByteString :: Iso' KafkaBytes ByteString
kString :: Iso' KafkaString ByteString
produceResponseFields :: Iso' ProduceResponse [(TopicName, [(Partition, KafkaError, Offset)])]
offsetResponseFields :: Iso' OffsetResponse [(TopicName, [PartitionOffsets])]
partitionOffsetsFields :: Iso' PartitionOffsets (Partition, KafkaError, [Offset])
fetchResponseFields :: Iso' FetchResponse [(TopicName, [(Partition, KafkaError, Offset, MessageSet)])]
metadataResponseFields :: Iso' MetadataResponse ([Broker], [TopicMetadata])
brokerFields :: Iso' Broker (NodeId, Host, Port)
nodeId :: Iso' NodeId Int32
hostKString :: Iso' Host KafkaString
portInt :: Iso' Port Int32
topicMetadataFields :: Iso' TopicMetadata (KafkaError, TopicName, [PartitionMetadata])
partitionMetadataFields :: Iso' PartitionMetadata (KafkaError, Partition, Leader, Replicas, Isr)
leaderId :: Iso' Leader (Maybe Int32)
timeInt :: Iso' Time Int64
codec :: Lens' MessageSet CompressionCodec
messageSetMembers :: Lens' MessageSet [MessageSetMember]
setMessage :: Lens' MessageSetMember Message
setOffset :: Lens' MessageSetMember Offset
messageFields :: Iso' Message (Crc, MagicByte, Attributes, Key, Value)
keyBytes :: Iso' Key (Maybe KafkaBytes)
valueBytes :: Iso' Value (Maybe KafkaBytes)
_MetadataResponse :: Prism' ResponseMessage MetadataResponse
_ProduceResponse :: Prism' ResponseMessage ProduceResponse
_FetchResponse :: Prism' ResponseMessage FetchResponse
_OffsetResponse :: Prism' ResponseMessage OffsetResponse
_OffsetCommitResponse :: Prism' ResponseMessage OffsetCommitResponse
_OffsetFetchResponse :: Prism' ResponseMessage OffsetFetchResponse
_GroupCoordinatorResponse :: Prism' ResponseMessage GroupCoordinatorResponse
keyed :: (Field1 a a b b, Choice p, Applicative f, Eq b) => b -> Optic' p f a a
metadataResponseBrokers :: Lens' MetadataResponse [Broker]
topicsMetadata :: Lens' MetadataResponse [TopicMetadata]
topicMetadataKafkaError :: Lens' TopicMetadata KafkaError
topicMetadataName :: Lens' TopicMetadata TopicName
partitionsMetadata :: Lens' TopicMetadata [PartitionMetadata]
partitionId :: Lens' PartitionMetadata Partition
partitionMetadataLeader :: Lens' PartitionMetadata Leader
brokerNode :: Lens' Broker NodeId
brokerHost :: Lens' Broker Host
brokerPort :: Lens' Broker Port
fetchResponseMessages :: Fold FetchResponse MessageSet
fetchResponseByTopic :: TopicName -> Fold FetchResponse (Partition, KafkaError, Offset, MessageSet)
messageSetByPartition :: Partition -> Fold (Partition, KafkaError, Offset, MessageSet) MessageSetMember
fetchResponseMessageMembers :: Fold FetchResponse MessageSetMember
messageKey :: Lens' Message Key
messageKeyBytes :: Fold Message ByteString
messageValue :: Lens' Message Value
payload :: Fold Message ByteString
offsetResponseOffset :: Partition -> Fold OffsetResponse Offset
messageSet :: Partition -> TopicName -> Fold FetchResponse MessageSetMember
nextOffset :: Lens' MessageSetMember Offset
findPartitionMetadata :: Applicative f => TopicName -> LensLike' f TopicMetadata [PartitionMetadata]
findPartition :: Partition -> Prism' PartitionMetadata PartitionMetadata
hostString :: Lens' Host String
portId :: IndexPreservingGetter Port PortID
instance GHC.Generics.Generic Network.Kafka.Protocol.Request
instance GHC.Classes.Eq Network.Kafka.Protocol.Request
instance GHC.Show.Show Network.Kafka.Protocol.Request
instance GHC.Generics.Generic Network.Kafka.Protocol.ResponseMessage
instance GHC.Classes.Eq Network.Kafka.Protocol.ResponseMessage
instance GHC.Show.Show Network.Kafka.Protocol.ResponseMessage
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.GroupCoordinatorResponse
instance GHC.Classes.Eq Network.Kafka.Protocol.GroupCoordinatorResponse
instance GHC.Generics.Generic Network.Kafka.Protocol.GroupCoordinatorResponse
instance GHC.Show.Show Network.Kafka.Protocol.GroupCoordinatorResponse
instance GHC.Generics.Generic Network.Kafka.Protocol.ProduceResponse
instance Network.Kafka.Protocol.Serializable Network.Kafka.Protocol.ProduceResponse
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.ProduceResponse
instance GHC.Classes.Eq Network.Kafka.Protocol.ProduceResponse
instance GHC.Show.Show Network.Kafka.Protocol.ProduceResponse
instance GHC.Generics.Generic Network.Kafka.Protocol.OffsetResponse
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.OffsetResponse
instance GHC.Classes.Eq Network.Kafka.Protocol.OffsetResponse
instance GHC.Show.Show Network.Kafka.Protocol.OffsetResponse
instance GHC.Generics.Generic Network.Kafka.Protocol.PartitionOffsets
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.PartitionOffsets
instance GHC.Classes.Eq Network.Kafka.Protocol.PartitionOffsets
instance GHC.Show.Show Network.Kafka.Protocol.PartitionOffsets
instance GHC.Generics.Generic Network.Kafka.Protocol.FetchResponse
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.FetchResponse
instance Network.Kafka.Protocol.Serializable Network.Kafka.Protocol.FetchResponse
instance GHC.Classes.Eq Network.Kafka.Protocol.FetchResponse
instance GHC.Show.Show Network.Kafka.Protocol.FetchResponse
instance GHC.Generics.Generic Network.Kafka.Protocol.MetadataResponse
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.MetadataResponse
instance GHC.Classes.Eq Network.Kafka.Protocol.MetadataResponse
instance GHC.Show.Show Network.Kafka.Protocol.MetadataResponse
instance GHC.Generics.Generic Network.Kafka.Protocol.TopicMetadata
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.TopicMetadata
instance GHC.Classes.Eq Network.Kafka.Protocol.TopicMetadata
instance GHC.Show.Show Network.Kafka.Protocol.TopicMetadata
instance GHC.Generics.Generic Network.Kafka.Protocol.PartitionMetadata
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.PartitionMetadata
instance GHC.Classes.Eq Network.Kafka.Protocol.PartitionMetadata
instance GHC.Show.Show Network.Kafka.Protocol.PartitionMetadata
instance GHC.Generics.Generic Network.Kafka.Protocol.OffsetCommitResponse
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.OffsetCommitResponse
instance GHC.Classes.Eq Network.Kafka.Protocol.OffsetCommitResponse
instance GHC.Show.Show Network.Kafka.Protocol.OffsetCommitResponse
instance GHC.Generics.Generic Network.Kafka.Protocol.OffsetFetchResponse
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.OffsetFetchResponse
instance GHC.Classes.Eq Network.Kafka.Protocol.OffsetFetchResponse
instance GHC.Show.Show Network.Kafka.Protocol.OffsetFetchResponse
instance GHC.Show.Show Network.Kafka.Protocol.KafkaError
instance GHC.Generics.Generic Network.Kafka.Protocol.KafkaError
instance GHC.Classes.Eq Network.Kafka.Protocol.KafkaError
instance GHC.Enum.Enum Network.Kafka.Protocol.KafkaError
instance GHC.Enum.Bounded Network.Kafka.Protocol.KafkaError
instance GHC.Classes.Eq Network.Kafka.Protocol.RequestMessage
instance GHC.Generics.Generic Network.Kafka.Protocol.RequestMessage
instance GHC.Show.Show Network.Kafka.Protocol.RequestMessage
instance GHC.Generics.Generic Network.Kafka.Protocol.OffsetCommitRequest
instance Network.Kafka.Protocol.Serializable Network.Kafka.Protocol.OffsetCommitRequest
instance GHC.Classes.Eq Network.Kafka.Protocol.OffsetCommitRequest
instance GHC.Show.Show Network.Kafka.Protocol.OffsetCommitRequest
instance GHC.Generics.Generic Network.Kafka.Protocol.Metadata
instance Data.String.IsString Network.Kafka.Protocol.Metadata
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.Metadata
instance Network.Kafka.Protocol.Serializable Network.Kafka.Protocol.Metadata
instance GHC.Classes.Eq Network.Kafka.Protocol.Metadata
instance GHC.Show.Show Network.Kafka.Protocol.Metadata
instance GHC.Generics.Generic Network.Kafka.Protocol.GroupCoordinatorRequest
instance Network.Kafka.Protocol.Serializable Network.Kafka.Protocol.GroupCoordinatorRequest
instance GHC.Classes.Eq Network.Kafka.Protocol.GroupCoordinatorRequest
instance GHC.Show.Show Network.Kafka.Protocol.GroupCoordinatorRequest
instance GHC.Generics.Generic Network.Kafka.Protocol.OffsetFetchRequest
instance Network.Kafka.Protocol.Serializable Network.Kafka.Protocol.OffsetFetchRequest
instance GHC.Classes.Eq Network.Kafka.Protocol.OffsetFetchRequest
instance GHC.Show.Show Network.Kafka.Protocol.OffsetFetchRequest
instance GHC.Generics.Generic Network.Kafka.Protocol.ConsumerGroup
instance Data.String.IsString Network.Kafka.Protocol.ConsumerGroup
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.ConsumerGroup
instance Network.Kafka.Protocol.Serializable Network.Kafka.Protocol.ConsumerGroup
instance GHC.Classes.Eq Network.Kafka.Protocol.ConsumerGroup
instance GHC.Show.Show Network.Kafka.Protocol.ConsumerGroup
instance GHC.Generics.Generic Network.Kafka.Protocol.ProduceRequest
instance Network.Kafka.Protocol.Serializable Network.Kafka.Protocol.ProduceRequest
instance GHC.Classes.Eq Network.Kafka.Protocol.ProduceRequest
instance GHC.Show.Show Network.Kafka.Protocol.ProduceRequest
instance GHC.Generics.Generic Network.Kafka.Protocol.MessageSet
instance GHC.Classes.Eq Network.Kafka.Protocol.MessageSet
instance GHC.Show.Show Network.Kafka.Protocol.MessageSet
instance GHC.Generics.Generic Network.Kafka.Protocol.MessageSetMember
instance GHC.Classes.Eq Network.Kafka.Protocol.MessageSetMember
instance GHC.Show.Show Network.Kafka.Protocol.MessageSetMember
instance GHC.Generics.Generic Network.Kafka.Protocol.Message
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.Message
instance GHC.Classes.Eq Network.Kafka.Protocol.Message
instance GHC.Show.Show Network.Kafka.Protocol.Message
instance GHC.Generics.Generic Network.Kafka.Protocol.Value
instance GHC.Classes.Eq Network.Kafka.Protocol.Value
instance GHC.Show.Show Network.Kafka.Protocol.Value
instance GHC.Generics.Generic Network.Kafka.Protocol.Key
instance GHC.Classes.Eq Network.Kafka.Protocol.Key
instance GHC.Show.Show Network.Kafka.Protocol.Key
instance GHC.Generics.Generic Network.Kafka.Protocol.Attributes
instance GHC.Classes.Eq Network.Kafka.Protocol.Attributes
instance GHC.Show.Show Network.Kafka.Protocol.Attributes
instance GHC.Generics.Generic Network.Kafka.Protocol.MagicByte
instance GHC.Enum.Enum Network.Kafka.Protocol.MagicByte
instance GHC.Real.Real Network.Kafka.Protocol.MagicByte
instance GHC.Classes.Ord Network.Kafka.Protocol.MagicByte
instance GHC.Real.Integral Network.Kafka.Protocol.MagicByte
instance GHC.Num.Num Network.Kafka.Protocol.MagicByte
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.MagicByte
instance Network.Kafka.Protocol.Serializable Network.Kafka.Protocol.MagicByte
instance GHC.Classes.Eq Network.Kafka.Protocol.MagicByte
instance GHC.Show.Show Network.Kafka.Protocol.MagicByte
instance GHC.Generics.Generic Network.Kafka.Protocol.Crc
instance GHC.Enum.Enum Network.Kafka.Protocol.Crc
instance GHC.Real.Real Network.Kafka.Protocol.Crc
instance GHC.Classes.Ord Network.Kafka.Protocol.Crc
instance GHC.Real.Integral Network.Kafka.Protocol.Crc
instance GHC.Num.Num Network.Kafka.Protocol.Crc
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.Crc
instance Network.Kafka.Protocol.Serializable Network.Kafka.Protocol.Crc
instance GHC.Classes.Eq Network.Kafka.Protocol.Crc
instance GHC.Show.Show Network.Kafka.Protocol.Crc
instance GHC.Generics.Generic Network.Kafka.Protocol.CompressionCodec
instance GHC.Classes.Eq Network.Kafka.Protocol.CompressionCodec
instance GHC.Show.Show Network.Kafka.Protocol.CompressionCodec
instance GHC.Generics.Generic Network.Kafka.Protocol.FetchRequest
instance Network.Kafka.Protocol.Serializable Network.Kafka.Protocol.FetchRequest
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.FetchRequest
instance GHC.Classes.Eq Network.Kafka.Protocol.FetchRequest
instance GHC.Show.Show Network.Kafka.Protocol.FetchRequest
instance GHC.Generics.Generic Network.Kafka.Protocol.Offset
instance GHC.Enum.Enum Network.Kafka.Protocol.Offset
instance GHC.Real.Real Network.Kafka.Protocol.Offset
instance GHC.Classes.Ord Network.Kafka.Protocol.Offset
instance GHC.Real.Integral Network.Kafka.Protocol.Offset
instance GHC.Num.Num Network.Kafka.Protocol.Offset
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.Offset
instance Network.Kafka.Protocol.Serializable Network.Kafka.Protocol.Offset
instance GHC.Classes.Eq Network.Kafka.Protocol.Offset
instance GHC.Show.Show Network.Kafka.Protocol.Offset
instance GHC.Generics.Generic Network.Kafka.Protocol.OffsetRequest
instance Network.Kafka.Protocol.Serializable Network.Kafka.Protocol.OffsetRequest
instance GHC.Classes.Eq Network.Kafka.Protocol.OffsetRequest
instance GHC.Show.Show Network.Kafka.Protocol.OffsetRequest
instance GHC.Generics.Generic Network.Kafka.Protocol.Partition
instance GHC.Enum.Enum Network.Kafka.Protocol.Partition
instance GHC.Real.Real Network.Kafka.Protocol.Partition
instance GHC.Classes.Ord Network.Kafka.Protocol.Partition
instance GHC.Real.Integral Network.Kafka.Protocol.Partition
instance GHC.Num.Num Network.Kafka.Protocol.Partition
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.Partition
instance Network.Kafka.Protocol.Serializable Network.Kafka.Protocol.Partition
instance GHC.Classes.Eq Network.Kafka.Protocol.Partition
instance GHC.Show.Show Network.Kafka.Protocol.Partition
instance GHC.Generics.Generic Network.Kafka.Protocol.Timeout
instance GHC.Enum.Enum Network.Kafka.Protocol.Timeout
instance GHC.Real.Real Network.Kafka.Protocol.Timeout
instance GHC.Classes.Ord Network.Kafka.Protocol.Timeout
instance GHC.Real.Integral Network.Kafka.Protocol.Timeout
instance GHC.Num.Num Network.Kafka.Protocol.Timeout
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.Timeout
instance Network.Kafka.Protocol.Serializable Network.Kafka.Protocol.Timeout
instance GHC.Classes.Eq Network.Kafka.Protocol.Timeout
instance GHC.Show.Show Network.Kafka.Protocol.Timeout
instance GHC.Generics.Generic Network.Kafka.Protocol.RequiredAcks
instance GHC.Enum.Enum Network.Kafka.Protocol.RequiredAcks
instance GHC.Real.Real Network.Kafka.Protocol.RequiredAcks
instance GHC.Classes.Ord Network.Kafka.Protocol.RequiredAcks
instance GHC.Real.Integral Network.Kafka.Protocol.RequiredAcks
instance GHC.Num.Num Network.Kafka.Protocol.RequiredAcks
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.RequiredAcks
instance Network.Kafka.Protocol.Serializable Network.Kafka.Protocol.RequiredAcks
instance GHC.Classes.Eq Network.Kafka.Protocol.RequiredAcks
instance GHC.Show.Show Network.Kafka.Protocol.RequiredAcks
instance GHC.Generics.Generic Network.Kafka.Protocol.MaxBytes
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.MaxBytes
instance Network.Kafka.Protocol.Serializable Network.Kafka.Protocol.MaxBytes
instance GHC.Enum.Enum Network.Kafka.Protocol.MaxBytes
instance GHC.Real.Real Network.Kafka.Protocol.MaxBytes
instance GHC.Classes.Ord Network.Kafka.Protocol.MaxBytes
instance GHC.Real.Integral Network.Kafka.Protocol.MaxBytes
instance GHC.Num.Num Network.Kafka.Protocol.MaxBytes
instance GHC.Classes.Eq Network.Kafka.Protocol.MaxBytes
instance GHC.Show.Show Network.Kafka.Protocol.MaxBytes
instance GHC.Generics.Generic Network.Kafka.Protocol.MinBytes
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.MinBytes
instance Network.Kafka.Protocol.Serializable Network.Kafka.Protocol.MinBytes
instance GHC.Enum.Enum Network.Kafka.Protocol.MinBytes
instance GHC.Real.Real Network.Kafka.Protocol.MinBytes
instance GHC.Classes.Ord Network.Kafka.Protocol.MinBytes
instance GHC.Real.Integral Network.Kafka.Protocol.MinBytes
instance GHC.Num.Num Network.Kafka.Protocol.MinBytes
instance GHC.Classes.Eq Network.Kafka.Protocol.MinBytes
instance GHC.Show.Show Network.Kafka.Protocol.MinBytes
instance GHC.Generics.Generic Network.Kafka.Protocol.MaxWaitTime
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.MaxWaitTime
instance Network.Kafka.Protocol.Serializable Network.Kafka.Protocol.MaxWaitTime
instance GHC.Enum.Enum Network.Kafka.Protocol.MaxWaitTime
instance GHC.Real.Real Network.Kafka.Protocol.MaxWaitTime
instance GHC.Classes.Ord Network.Kafka.Protocol.MaxWaitTime
instance GHC.Real.Integral Network.Kafka.Protocol.MaxWaitTime
instance GHC.Num.Num Network.Kafka.Protocol.MaxWaitTime
instance GHC.Classes.Eq Network.Kafka.Protocol.MaxWaitTime
instance GHC.Show.Show Network.Kafka.Protocol.MaxWaitTime
instance GHC.Generics.Generic Network.Kafka.Protocol.ReplicaId
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.ReplicaId
instance Network.Kafka.Protocol.Serializable Network.Kafka.Protocol.ReplicaId
instance GHC.Enum.Enum Network.Kafka.Protocol.ReplicaId
instance GHC.Real.Real Network.Kafka.Protocol.ReplicaId
instance GHC.Classes.Ord Network.Kafka.Protocol.ReplicaId
instance GHC.Real.Integral Network.Kafka.Protocol.ReplicaId
instance GHC.Num.Num Network.Kafka.Protocol.ReplicaId
instance GHC.Classes.Eq Network.Kafka.Protocol.ReplicaId
instance GHC.Show.Show Network.Kafka.Protocol.ReplicaId
instance GHC.Generics.Generic Network.Kafka.Protocol.MaxNumberOfOffsets
instance GHC.Enum.Enum Network.Kafka.Protocol.MaxNumberOfOffsets
instance GHC.Real.Real Network.Kafka.Protocol.MaxNumberOfOffsets
instance GHC.Classes.Ord Network.Kafka.Protocol.MaxNumberOfOffsets
instance GHC.Real.Integral Network.Kafka.Protocol.MaxNumberOfOffsets
instance GHC.Num.Num Network.Kafka.Protocol.MaxNumberOfOffsets
instance Network.Kafka.Protocol.Serializable Network.Kafka.Protocol.MaxNumberOfOffsets
instance GHC.Classes.Eq Network.Kafka.Protocol.MaxNumberOfOffsets
instance GHC.Show.Show Network.Kafka.Protocol.MaxNumberOfOffsets
instance GHC.Generics.Generic Network.Kafka.Protocol.Time
instance GHC.Enum.Bounded Network.Kafka.Protocol.Time
instance GHC.Enum.Enum Network.Kafka.Protocol.Time
instance GHC.Real.Real Network.Kafka.Protocol.Time
instance GHC.Classes.Ord Network.Kafka.Protocol.Time
instance GHC.Real.Integral Network.Kafka.Protocol.Time
instance GHC.Num.Num Network.Kafka.Protocol.Time
instance Network.Kafka.Protocol.Serializable Network.Kafka.Protocol.Time
instance GHC.Classes.Eq Network.Kafka.Protocol.Time
instance GHC.Show.Show Network.Kafka.Protocol.Time
instance GHC.Generics.Generic Network.Kafka.Protocol.Isr
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.Isr
instance GHC.Classes.Eq Network.Kafka.Protocol.Isr
instance GHC.Show.Show Network.Kafka.Protocol.Isr
instance GHC.Generics.Generic Network.Kafka.Protocol.Replicas
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.Replicas
instance Network.Kafka.Protocol.Serializable Network.Kafka.Protocol.Replicas
instance GHC.Classes.Eq Network.Kafka.Protocol.Replicas
instance GHC.Show.Show Network.Kafka.Protocol.Replicas
instance GHC.Generics.Generic Network.Kafka.Protocol.Leader
instance GHC.Classes.Ord Network.Kafka.Protocol.Leader
instance GHC.Classes.Eq Network.Kafka.Protocol.Leader
instance GHC.Show.Show Network.Kafka.Protocol.Leader
instance GHC.Generics.Generic Network.Kafka.Protocol.Broker
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.Broker
instance GHC.Classes.Ord Network.Kafka.Protocol.Broker
instance GHC.Classes.Eq Network.Kafka.Protocol.Broker
instance GHC.Show.Show Network.Kafka.Protocol.Broker
instance GHC.Generics.Generic Network.Kafka.Protocol.Port
instance GHC.Enum.Enum Network.Kafka.Protocol.Port
instance GHC.Real.Real Network.Kafka.Protocol.Port
instance GHC.Classes.Ord Network.Kafka.Protocol.Port
instance GHC.Real.Integral Network.Kafka.Protocol.Port
instance GHC.Num.Num Network.Kafka.Protocol.Port
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.Port
instance GHC.Classes.Eq Network.Kafka.Protocol.Port
instance GHC.Show.Show Network.Kafka.Protocol.Port
instance GHC.Generics.Generic Network.Kafka.Protocol.Host
instance Data.String.IsString Network.Kafka.Protocol.Host
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.Host
instance GHC.Classes.Ord Network.Kafka.Protocol.Host
instance GHC.Classes.Eq Network.Kafka.Protocol.Host
instance GHC.Show.Show Network.Kafka.Protocol.Host
instance GHC.Generics.Generic Network.Kafka.Protocol.NodeId
instance GHC.Enum.Enum Network.Kafka.Protocol.NodeId
instance GHC.Real.Real Network.Kafka.Protocol.NodeId
instance GHC.Classes.Ord Network.Kafka.Protocol.NodeId
instance GHC.Real.Integral Network.Kafka.Protocol.NodeId
instance GHC.Num.Num Network.Kafka.Protocol.NodeId
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.NodeId
instance GHC.Classes.Eq Network.Kafka.Protocol.NodeId
instance GHC.Show.Show Network.Kafka.Protocol.NodeId
instance Data.String.IsString Network.Kafka.Protocol.ClientId
instance GHC.Generics.Generic Network.Kafka.Protocol.ClientId
instance Network.Kafka.Protocol.Serializable Network.Kafka.Protocol.ClientId
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.ClientId
instance GHC.Classes.Eq Network.Kafka.Protocol.ClientId
instance GHC.Show.Show Network.Kafka.Protocol.ClientId
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.MetadataRequest
instance GHC.Generics.Generic Network.Kafka.Protocol.MetadataRequest
instance Network.Kafka.Protocol.Serializable Network.Kafka.Protocol.MetadataRequest
instance GHC.Classes.Eq Network.Kafka.Protocol.MetadataRequest
instance GHC.Show.Show Network.Kafka.Protocol.MetadataRequest
instance Data.String.IsString Network.Kafka.Protocol.TopicName
instance GHC.Generics.Generic Network.Kafka.Protocol.TopicName
instance Network.Kafka.Protocol.Serializable Network.Kafka.Protocol.TopicName
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.TopicName
instance GHC.Classes.Ord Network.Kafka.Protocol.TopicName
instance GHC.Classes.Eq Network.Kafka.Protocol.TopicName
instance Data.String.IsString Network.Kafka.Protocol.KafkaString
instance GHC.Generics.Generic Network.Kafka.Protocol.KafkaString
instance GHC.Classes.Ord Network.Kafka.Protocol.KafkaString
instance GHC.Classes.Eq Network.Kafka.Protocol.KafkaString
instance GHC.Show.Show Network.Kafka.Protocol.KafkaString
instance Data.String.IsString Network.Kafka.Protocol.KafkaBytes
instance GHC.Generics.Generic Network.Kafka.Protocol.KafkaBytes
instance GHC.Classes.Eq Network.Kafka.Protocol.KafkaBytes
instance GHC.Show.Show Network.Kafka.Protocol.KafkaBytes
instance GHC.Enum.Enum Network.Kafka.Protocol.CorrelationId
instance GHC.Generics.Generic Network.Kafka.Protocol.CorrelationId
instance GHC.Real.Real Network.Kafka.Protocol.CorrelationId
instance GHC.Classes.Ord Network.Kafka.Protocol.CorrelationId
instance GHC.Real.Integral Network.Kafka.Protocol.CorrelationId
instance GHC.Num.Num Network.Kafka.Protocol.CorrelationId
instance Network.Kafka.Protocol.Serializable Network.Kafka.Protocol.CorrelationId
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.CorrelationId
instance GHC.Classes.Eq Network.Kafka.Protocol.CorrelationId
instance GHC.Show.Show Network.Kafka.Protocol.CorrelationId
instance GHC.Enum.Enum Network.Kafka.Protocol.ApiVersion
instance GHC.Generics.Generic Network.Kafka.Protocol.ApiVersion
instance GHC.Real.Real Network.Kafka.Protocol.ApiVersion
instance GHC.Classes.Ord Network.Kafka.Protocol.ApiVersion
instance GHC.Real.Integral Network.Kafka.Protocol.ApiVersion
instance GHC.Num.Num Network.Kafka.Protocol.ApiVersion
instance Network.Kafka.Protocol.Serializable Network.Kafka.Protocol.ApiVersion
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.ApiVersion
instance GHC.Classes.Eq Network.Kafka.Protocol.ApiVersion
instance GHC.Show.Show Network.Kafka.Protocol.ApiVersion
instance GHC.Enum.Enum Network.Kafka.Protocol.ApiKey
instance GHC.Generics.Generic Network.Kafka.Protocol.ApiKey
instance GHC.Real.Real Network.Kafka.Protocol.ApiKey
instance GHC.Classes.Ord Network.Kafka.Protocol.ApiKey
instance GHC.Real.Integral Network.Kafka.Protocol.ApiKey
instance GHC.Num.Num Network.Kafka.Protocol.ApiKey
instance Network.Kafka.Protocol.Serializable Network.Kafka.Protocol.ApiKey
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.ApiKey
instance GHC.Classes.Eq Network.Kafka.Protocol.ApiKey
instance GHC.Show.Show Network.Kafka.Protocol.ApiKey
instance Network.Kafka.Protocol.Serializable Network.Kafka.Protocol.Request
instance Network.Kafka.Protocol.Serializable Network.Kafka.Protocol.KafkaError
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.KafkaError
instance GHC.Exception.Exception Network.Kafka.Protocol.KafkaError
instance Network.Kafka.Protocol.Serializable Network.Kafka.Protocol.RequestMessage
instance Network.Kafka.Protocol.Serializable Network.Kafka.Protocol.MessageSet
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.MessageSet
instance Network.Kafka.Protocol.Serializable Network.Kafka.Protocol.MessageSetMember
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.MessageSetMember
instance Network.Kafka.Protocol.Serializable Network.Kafka.Protocol.Message
instance Network.Kafka.Protocol.Serializable Network.Kafka.Protocol.Value
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.Value
instance Network.Kafka.Protocol.Serializable Network.Kafka.Protocol.Key
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.Key
instance Network.Kafka.Protocol.Serializable Network.Kafka.Protocol.Attributes
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.Attributes
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.Leader
instance GHC.Show.Show Network.Kafka.Protocol.TopicName
instance Network.Kafka.Protocol.Serializable Network.Kafka.Protocol.KafkaString
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.KafkaString
instance Network.Kafka.Protocol.Serializable Network.Kafka.Protocol.KafkaBytes
instance Network.Kafka.Protocol.Deserializable Network.Kafka.Protocol.KafkaBytes
instance Network.Kafka.Protocol.Deserializable a => Network.Kafka.Protocol.Deserializable [a]
instance (Network.Kafka.Protocol.Deserializable a, Network.Kafka.Protocol.Deserializable b) => Network.Kafka.Protocol.Deserializable (a, b)
instance (Network.Kafka.Protocol.Deserializable a, Network.Kafka.Protocol.Deserializable b, Network.Kafka.Protocol.Deserializable c) => Network.Kafka.Protocol.Deserializable (a, b, c)
instance (Network.Kafka.Protocol.Deserializable a, Network.Kafka.Protocol.Deserializable b, Network.Kafka.Protocol.Deserializable c, Network.Kafka.Protocol.Deserializable d) => Network.Kafka.Protocol.Deserializable (a, b, c, d)
instance (Network.Kafka.Protocol.Deserializable a, Network.Kafka.Protocol.Deserializable b, Network.Kafka.Protocol.Deserializable c, Network.Kafka.Protocol.Deserializable d, Network.Kafka.Protocol.Deserializable e) => Network.Kafka.Protocol.Deserializable (a, b, c, d, e)
instance Network.Kafka.Protocol.Deserializable GHC.Int.Int64
instance Network.Kafka.Protocol.Deserializable GHC.Int.Int32
instance Network.Kafka.Protocol.Deserializable GHC.Int.Int16
instance Network.Kafka.Protocol.Deserializable GHC.Int.Int8
instance Network.Kafka.Protocol.Serializable GHC.Int.Int64
instance Network.Kafka.Protocol.Serializable GHC.Int.Int32
instance Network.Kafka.Protocol.Serializable GHC.Int.Int16
instance Network.Kafka.Protocol.Serializable GHC.Int.Int8
instance Network.Kafka.Protocol.Serializable a => Network.Kafka.Protocol.Serializable [a]
instance (Network.Kafka.Protocol.Serializable a, Network.Kafka.Protocol.Serializable b) => Network.Kafka.Protocol.Serializable (a, b)
instance (Network.Kafka.Protocol.Serializable a, Network.Kafka.Protocol.Serializable b, Network.Kafka.Protocol.Serializable c) => Network.Kafka.Protocol.Serializable (a, b, c)
instance (Network.Kafka.Protocol.Serializable a, Network.Kafka.Protocol.Serializable b, Network.Kafka.Protocol.Serializable c, Network.Kafka.Protocol.Serializable d) => Network.Kafka.Protocol.Serializable (a, b, c, d)
instance (Network.Kafka.Protocol.Serializable a, Network.Kafka.Protocol.Serializable b, Network.Kafka.Protocol.Serializable c, Network.Kafka.Protocol.Serializable d, Network.Kafka.Protocol.Serializable e) => Network.Kafka.Protocol.Serializable (a, b, c, d, e)

module Network.Kafka
type KafkaAddress = (Host, Port)
data KafkaState
KafkaState :: KafkaString -> RequiredAcks -> Timeout -> MinBytes -> MaxBytes -> MaxWaitTime -> CorrelationId -> Map Leader Broker -> Map KafkaAddress (Pool Handle) -> Map TopicName TopicMetadata -> NonEmpty KafkaAddress -> KafkaState

-- | Name to use as a client ID.
[_stateName] :: KafkaState -> KafkaString

-- | How many acknowledgements are required for producing.
[_stateRequiredAcks] :: KafkaState -> RequiredAcks

-- | Time in milliseconds to wait for messages to be produced by broker.
[_stateRequestTimeout] :: KafkaState -> Timeout

-- | Minimum size of response bytes to block for.
[_stateWaitSize] :: KafkaState -> MinBytes

-- | Maximum size of response bytes to retrieve.
[_stateBufferSize] :: KafkaState -> MaxBytes

-- | Maximum time in milliseconds to wait for response.
[_stateWaitTime] :: KafkaState -> MaxWaitTime

-- | An incrementing counter of requests.
[_stateCorrelationId] :: KafkaState -> CorrelationId

-- | Broker cache
[_stateBrokers] :: KafkaState -> Map Leader Broker

-- | Connection cache
[_stateConnections] :: KafkaState -> Map KafkaAddress (Pool Handle)

-- | Topic metadata cache
[_stateTopicMetadata] :: KafkaState -> Map TopicName TopicMetadata

-- | Address cache
[_stateAddresses] :: KafkaState -> NonEmpty KafkaAddress
stateWaitTime :: Lens' KafkaState MaxWaitTime
stateWaitSize :: Lens' KafkaState MinBytes
stateTopicMetadata :: Lens' KafkaState (Map TopicName TopicMetadata)
stateRequiredAcks :: Lens' KafkaState RequiredAcks
stateRequestTimeout :: Lens' KafkaState Timeout
stateName :: Lens' KafkaState KafkaString
stateCorrelationId :: Lens' KafkaState CorrelationId
stateConnections :: Lens' KafkaState (Map KafkaAddress (Pool Handle))
stateBufferSize :: Lens' KafkaState MaxBytes
stateBrokers :: Lens' KafkaState (Map Leader Broker)
stateAddresses :: Lens' KafkaState (NonEmpty KafkaAddress)

-- | The core Kafka monad.
type Kafka m = (MonadState KafkaState m, MonadError KafkaClientError m, MonadIO m, MonadBaseControl IO m)
type KafkaClientId = KafkaString

-- | Errors given from the Kafka monad.
data KafkaClientError

-- | A response did not contain an offset.
KafkaNoOffset :: KafkaClientError

-- | A value could not be deserialized correctly.
KafkaDeserializationError :: String -> KafkaClientError

-- | Could not find a cached broker for the found leader.
KafkaInvalidBroker :: Leader -> KafkaClientError
KafkaFailedToFetchMetadata :: KafkaClientError
KafkaIOException :: IOException -> KafkaClientError

-- | An abstract form of Kafka's time. Used for querying offsets.
data KafkaTime

-- | The latest time on the broker.
LatestTime :: KafkaTime

-- | The earliest time on the broker.
EarliestTime :: KafkaTime

-- | A specific time.
OtherTime :: Time -> KafkaTime
data PartitionAndLeader
PartitionAndLeader :: TopicName -> Partition -> Leader -> PartitionAndLeader
[_palTopic] :: PartitionAndLeader -> TopicName
[_palPartition] :: PartitionAndLeader -> Partition
[_palLeader] :: PartitionAndLeader -> Leader
palTopic :: Lens' PartitionAndLeader TopicName
palPartition :: Lens' PartitionAndLeader Partition
palLeader :: Lens' PartitionAndLeader Leader
data TopicAndPartition
TopicAndPartition :: TopicName -> Partition -> TopicAndPartition
[_tapTopic] :: TopicAndPartition -> TopicName
[_tapPartition] :: TopicAndPartition -> Partition

-- | A topic with a serializable message.
data TopicAndMessage
TopicAndMessage :: TopicName -> Message -> TopicAndMessage
[_tamTopic] :: TopicAndMessage -> TopicName
[_tamMessage] :: TopicAndMessage -> Message
tamTopic :: Lens' TopicAndMessage TopicName
tamMessage :: Lens' TopicAndMessage Message

-- | Get the bytes from the Kafka message, ignoring the topic.
tamPayload :: TopicAndMessage -> ByteString

-- | Default: <tt>0</tt>
defaultCorrelationId :: CorrelationId

-- | Default: <tt>1</tt>
defaultRequiredAcks :: RequiredAcks

-- | Default: <tt>10000</tt>
defaultRequestTimeout :: Timeout

-- | Default: <tt>0</tt>
defaultMinBytes :: MinBytes

-- | Default: <tt>1024 * 1024</tt>
defaultMaxBytes :: MaxBytes

-- | Default: <tt>0</tt>
defaultMaxWaitTime :: MaxWaitTime

-- | Create a consumer using default values.
mkKafkaState :: KafkaClientId -> KafkaAddress -> KafkaState
addKafkaAddress :: KafkaAddress -> KafkaState -> KafkaState

-- | Run the underlying Kafka monad.
runKafka :: KafkaState -> StateT KafkaState (ExceptT KafkaClientError IO) a -> IO (Either KafkaClientError a)

-- | Catch <a>IOException</a>s and wrap them in <a>KafkaIOException</a>s.
tryKafka :: Kafka m => m a -> m a

-- | Make a request, incrementing the <a>_stateCorrelationId</a>.
makeRequest :: Kafka m => Handle -> ReqResp (m a) -> m a

-- | Send a metadata request to any broker.
metadata :: Kafka m => MetadataRequest -> m MetadataResponse

-- | Send a metadata request.
metadata' :: Kafka m => Handle -> MetadataRequest -> m MetadataResponse
getTopicPartitionLeader :: Kafka m => TopicName -> Partition -> m Broker
expect :: Kafka m => KafkaClientError -> (a -> Maybe b) -> a -> m b

-- | Find a leader and partition for the topic.
brokerPartitionInfo :: Kafka m => TopicName -> m (Set PartitionAndLeader)
findMetadataOrElse :: Kafka m => [TopicName] -> Getting (Maybe a) KafkaState (Maybe a) -> KafkaClientError -> m a

-- | Convert an abstract time to a serializable protocol value.
protocolTime :: KafkaTime -> Time
updateMetadatas :: Kafka m => [TopicName] -> m ()
updateMetadata :: Kafka m => TopicName -> m ()
updateAllMetadata :: Kafka m => m ()

-- | Execute a Kafka action with a <a>Handle</a> for the given
--   <a>Broker</a>, updating the connections cache if needed.
--   
--   When the action throws an <a>IOException</a>, it is caught and
--   returned as a <a>KafkaIOException</a> in the Kafka monad.
--   
--   Note that when the given action throws an exception, any state changes
--   will be discarded. This includes both <a>IOException</a>s and
--   exceptions thrown by <a>throwError</a> from <a>Except</a>.
withBrokerHandle :: Kafka m => Broker -> (Handle -> m a) -> m a

-- | Execute a Kafka action with a <a>Handle</a> for the given
--   <a>KafkaAddress</a>, updating the connections cache if needed.
--   
--   When the action throws an <a>IOException</a>, it is caught and
--   returned as a <a>KafkaIOException</a> in the Kafka monad.
--   
--   Note that when the given action throws an exception, any state changes
--   will be discarded. This includes both <a>IOException</a>s and
--   exceptions thrown by <a>throwError</a> from <a>Except</a>.
withAddressHandle :: Kafka m => KafkaAddress -> (Handle -> m a) -> m a
broker2address :: Broker -> KafkaAddress

-- | Like <a>withAddressHandle</a>, but round-robins the addresses in the
--   <a>KafkaState</a>.
--   
--   When the action throws an <a>IOException</a>, it is caught and
--   returned as a <a>KafkaIOException</a> in the Kafka monad.
--   
--   Note that when the given action throws an exception, any state changes
--   will be discarded. This includes both <a>IOException</a>s and
--   exceptions thrown by <a>throwError</a> from <a>Except</a>.
withAnyHandle :: Kafka m => (Handle -> m a) -> m a

-- | Fields to construct an offset request, per topic and partition.
data PartitionOffsetRequestInfo
PartitionOffsetRequestInfo :: KafkaTime -> MaxNumberOfOffsets -> PartitionOffsetRequestInfo

-- | Time to find an offset for.
[_kafkaTime] :: PartitionOffsetRequestInfo -> KafkaTime

-- | Number of offsets to retrieve.
[_maxNumOffsets] :: PartitionOffsetRequestInfo -> MaxNumberOfOffsets

-- | Get the first found offset.
getLastOffset :: Kafka m => KafkaTime -> Partition -> TopicName -> m Offset

-- | Get the first found offset.
getLastOffset' :: Kafka m => Handle -> KafkaTime -> Partition -> TopicName -> m Offset

-- | Create an offset request.
offsetRequest :: [(TopicAndPartition, PartitionOffsetRequestInfo)] -> OffsetRequest
instance GHC.Show.Show Network.Kafka.TopicAndMessage
instance GHC.Generics.Generic Network.Kafka.TopicAndMessage
instance GHC.Classes.Eq Network.Kafka.TopicAndMessage
instance GHC.Show.Show Network.Kafka.TopicAndPartition
instance GHC.Classes.Ord Network.Kafka.TopicAndPartition
instance GHC.Generics.Generic Network.Kafka.TopicAndPartition
instance GHC.Classes.Eq Network.Kafka.TopicAndPartition
instance GHC.Classes.Ord Network.Kafka.PartitionAndLeader
instance GHC.Classes.Eq Network.Kafka.PartitionAndLeader
instance GHC.Generics.Generic Network.Kafka.PartitionAndLeader
instance GHC.Show.Show Network.Kafka.PartitionAndLeader
instance GHC.Generics.Generic Network.Kafka.KafkaTime
instance GHC.Classes.Eq Network.Kafka.KafkaTime
instance GHC.Show.Show Network.Kafka.KafkaClientError
instance GHC.Generics.Generic Network.Kafka.KafkaClientError
instance GHC.Classes.Eq Network.Kafka.KafkaClientError
instance GHC.Exception.Exception Network.Kafka.KafkaClientError
instance GHC.Show.Show Network.Kafka.KafkaState
instance GHC.Generics.Generic Network.Kafka.KafkaState

module Network.Kafka.Producer

-- | Execute a produce request and get the raw produce response.
produce :: Kafka m => Handle -> ProduceRequest -> m ProduceResponse

-- | Construct a produce request with explicit arguments.
produceRequest :: RequiredAcks -> Timeout -> [(TopicAndPartition, MessageSet)] -> ProduceRequest

-- | Send messages to partition calculated by <a>partitionAndCollate</a>.
produceMessages :: Kafka m => [TopicAndMessage] -> m [ProduceResponse]

-- | Send compressed messages to partition calculated by
--   <a>partitionAndCollate</a>.
produceCompressedMessages :: Kafka m => CompressionCodec -> [TopicAndMessage] -> m [ProduceResponse]
prod :: Kafka m => ([TopicAndMessage] -> MessageSet) -> [TopicAndMessage] -> m [ProduceResponse]

-- | Create a protocol message set from a list of messages.
groupMessagesToSet :: CompressionCodec -> [TopicAndMessage] -> MessageSet

-- | Group messages together with the leader they should be sent to.
partitionAndCollate :: Kafka m => [TopicAndMessage] -> m (Map Leader (Map TopicAndPartition [TopicAndMessage]))

-- | Compute the partition for a record. This matches the way the official
--   | clients compute the partition.
getPartitionByKey :: ByteString -> Set PartitionAndLeader -> Maybe PartitionAndLeader

-- | Execute a produce request using the values in the state.
send :: Kafka m => Leader -> [(TopicAndPartition, MessageSet)] -> m ProduceResponse
getRandPartition :: Kafka m => Set PartitionAndLeader -> m (Maybe PartitionAndLeader)

-- | Default: <tt>1</tt>
defaultMessageCrc :: Crc

-- | Default: <tt>0</tt>
defaultMessageMagicByte :: MagicByte

-- | Default: <tt>Nothing</tt>
defaultMessageKey :: Key

-- | Default: <tt>0</tt>
defaultMessageAttributes :: Attributes

-- | Construct a message from a string of bytes using default attributes.
makeMessage :: ByteString -> Message

-- | Construct a message from a string of bytes using default attributes.
makeKeyedMessage :: ByteString -> ByteString -> Message

module Network.Kafka.Consumer

-- | Default: <tt>-1</tt>
ordinaryConsumerId :: ReplicaId

-- | Construct a fetch request from the values in the state.
fetchRequest :: Kafka m => Offset -> Partition -> TopicName -> m FetchRequest

-- | Execute a fetch request and get the raw fetch response.
fetch' :: Kafka m => Handle -> FetchRequest -> m FetchResponse
fetch :: Kafka m => Offset -> Partition -> TopicName -> m FetchResponse

-- | Extract out messages with their topics from a fetch response.
fetchMessages :: FetchResponse -> [TopicAndMessage]
