module Network.AWS.CloudWatchLogs.PutLogEvents
(
PutLogEvents
, putLogEvents
, pleLogEvents
, pleLogGroupName
, pleLogStreamName
, pleSequenceToken
, PutLogEventsResponse
, putLogEventsResponse
, plerNextSequenceToken
, plerRejectedLogEventsInfo
) where
import Network.AWS.Data (Object)
import Network.AWS.Prelude
import Network.AWS.Request.JSON
import Network.AWS.CloudWatchLogs.Types
import qualified GHC.Exts
data PutLogEvents = PutLogEvents
{ _pleLogEvents :: List1 "logEvents" InputLogEvent
, _pleLogGroupName :: Text
, _pleLogStreamName :: Text
, _pleSequenceToken :: Maybe Text
} deriving (Eq, Read, Show)
putLogEvents :: Text
-> Text
-> NonEmpty InputLogEvent
-> PutLogEvents
putLogEvents p1 p2 p3 = PutLogEvents
{ _pleLogGroupName = p1
, _pleLogStreamName = p2
, _pleLogEvents = withIso _List1 (const id) p3
, _pleSequenceToken = Nothing
}
pleLogEvents :: Lens' PutLogEvents (NonEmpty InputLogEvent)
pleLogEvents = lens _pleLogEvents (\s a -> s { _pleLogEvents = a }) . _List1
pleLogGroupName :: Lens' PutLogEvents Text
pleLogGroupName = lens _pleLogGroupName (\s a -> s { _pleLogGroupName = a })
pleLogStreamName :: Lens' PutLogEvents Text
pleLogStreamName = lens _pleLogStreamName (\s a -> s { _pleLogStreamName = a })
pleSequenceToken :: Lens' PutLogEvents (Maybe Text)
pleSequenceToken = lens _pleSequenceToken (\s a -> s { _pleSequenceToken = a })
data PutLogEventsResponse = PutLogEventsResponse
{ _plerNextSequenceToken :: Maybe Text
, _plerRejectedLogEventsInfo :: Maybe RejectedLogEventsInfo
} deriving (Eq, Read, Show)
putLogEventsResponse :: PutLogEventsResponse
putLogEventsResponse = PutLogEventsResponse
{ _plerNextSequenceToken = Nothing
, _plerRejectedLogEventsInfo = Nothing
}
plerNextSequenceToken :: Lens' PutLogEventsResponse (Maybe Text)
plerNextSequenceToken =
lens _plerNextSequenceToken (\s a -> s { _plerNextSequenceToken = a })
plerRejectedLogEventsInfo :: Lens' PutLogEventsResponse (Maybe RejectedLogEventsInfo)
plerRejectedLogEventsInfo =
lens _plerRejectedLogEventsInfo
(\s a -> s { _plerRejectedLogEventsInfo = a })
instance ToPath PutLogEvents where
toPath = const "/"
instance ToQuery PutLogEvents where
toQuery = const mempty
instance ToHeaders PutLogEvents
instance ToJSON PutLogEvents where
toJSON PutLogEvents{..} = object
[ "logGroupName" .= _pleLogGroupName
, "logStreamName" .= _pleLogStreamName
, "logEvents" .= _pleLogEvents
, "sequenceToken" .= _pleSequenceToken
]
instance AWSRequest PutLogEvents where
type Sv PutLogEvents = CloudWatchLogs
type Rs PutLogEvents = PutLogEventsResponse
request = post "PutLogEvents"
response = jsonResponse
instance FromJSON PutLogEventsResponse where
parseJSON = withObject "PutLogEventsResponse" $ \o -> PutLogEventsResponse
<$> o .:? "nextSequenceToken"
<*> o .:? "rejectedLogEventsInfo"