{-| Module : Network.Nakadi.EventTypes Description : Implementation of Nakadi EventTypes API Copyright : (c) Moritz Schulte 2017, 2018 License : BSD3 Maintainer : mtesseract@silverratio.net Stability : experimental Portability : POSIX This module implements the @\/event-types@ API. -} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE MultiParamTypeClasses #-} module Network.Nakadi.EventTypes ( module Network.Nakadi.EventTypes.CursorDistances , module Network.Nakadi.EventTypes.CursorsLag , module Network.Nakadi.EventTypes.Events , module Network.Nakadi.EventTypes.EventType , module Network.Nakadi.EventTypes.Partitions , module Network.Nakadi.EventTypes.ShiftedCursors , module Network.Nakadi.EventTypes.Schemas , eventTypesList , eventTypeCreate ) where import Network.Nakadi.Internal.Prelude import Network.Nakadi.EventTypes.CursorDistances import Network.Nakadi.EventTypes.CursorsLag import Network.Nakadi.EventTypes.Events import Network.Nakadi.EventTypes.EventType import Network.Nakadi.EventTypes.Partitions import Network.Nakadi.EventTypes.Schemas import Network.Nakadi.EventTypes.ShiftedCursors import Network.Nakadi.Internal.Http path :: ByteString path = "/event-types" -- | @GET@ to @\/event-types@. Retrieves a list of all registered -- event types. eventTypesList :: MonadNakadi b m => m [EventType] -- ^ Registered Event Types eventTypesList = do config <- nakadiAsk httpJsonBody status200 [] $ (setRequestMethod "GET" . includeFlowId config . setRequestPath path) -- | @POST@ to @\/event-types@. Creates a new event type. eventTypeCreate :: MonadNakadi b m => EventType -- ^ Event Type to create -> m () eventTypeCreate eventType = httpJsonNoBody status201 [] (setRequestMethod "POST" . setRequestPath path . setRequestBodyJSON eventType)