module Network.AWS.CloudWatchLogs.GetLogEvents
(
GetLogEvents
, getLogEvents
, gleEndTime
, gleLimit
, gleLogGroupName
, gleLogStreamName
, gleNextToken
, gleStartFromHead
, gleStartTime
, GetLogEventsResponse
, getLogEventsResponse
, glerEvents
, glerNextBackwardToken
, glerNextForwardToken
) where
import Network.AWS.Prelude
import Network.AWS.Request.JSON
import Network.AWS.CloudWatchLogs.Types
import qualified GHC.Exts
data GetLogEvents = GetLogEvents
{ _gleEndTime :: Maybe Nat
, _gleLimit :: Maybe Nat
, _gleLogGroupName :: Text
, _gleLogStreamName :: Text
, _gleNextToken :: Maybe Text
, _gleStartFromHead :: Maybe Bool
, _gleStartTime :: Maybe Nat
} deriving (Eq, Ord, Show)
getLogEvents :: Text
-> Text
-> GetLogEvents
getLogEvents p1 p2 = GetLogEvents
{ _gleLogGroupName = p1
, _gleLogStreamName = p2
, _gleStartTime = Nothing
, _gleEndTime = Nothing
, _gleNextToken = Nothing
, _gleLimit = Nothing
, _gleStartFromHead = Nothing
}
gleEndTime :: Lens' GetLogEvents (Maybe Natural)
gleEndTime = lens _gleEndTime (\s a -> s { _gleEndTime = a }) . mapping _Nat
gleLimit :: Lens' GetLogEvents (Maybe Natural)
gleLimit = lens _gleLimit (\s a -> s { _gleLimit = a }) . mapping _Nat
gleLogGroupName :: Lens' GetLogEvents Text
gleLogGroupName = lens _gleLogGroupName (\s a -> s { _gleLogGroupName = a })
gleLogStreamName :: Lens' GetLogEvents Text
gleLogStreamName = lens _gleLogStreamName (\s a -> s { _gleLogStreamName = a })
gleNextToken :: Lens' GetLogEvents (Maybe Text)
gleNextToken = lens _gleNextToken (\s a -> s { _gleNextToken = a })
gleStartFromHead :: Lens' GetLogEvents (Maybe Bool)
gleStartFromHead = lens _gleStartFromHead (\s a -> s { _gleStartFromHead = a })
gleStartTime :: Lens' GetLogEvents (Maybe Natural)
gleStartTime = lens _gleStartTime (\s a -> s { _gleStartTime = a }) . mapping _Nat
data GetLogEventsResponse = GetLogEventsResponse
{ _glerEvents :: List "events" OutputLogEvent
, _glerNextBackwardToken :: Maybe Text
, _glerNextForwardToken :: Maybe Text
} deriving (Eq, Show)
getLogEventsResponse :: GetLogEventsResponse
getLogEventsResponse = GetLogEventsResponse
{ _glerEvents = mempty
, _glerNextForwardToken = Nothing
, _glerNextBackwardToken = Nothing
}
glerEvents :: Lens' GetLogEventsResponse [OutputLogEvent]
glerEvents = lens _glerEvents (\s a -> s { _glerEvents = a }) . _List
glerNextBackwardToken :: Lens' GetLogEventsResponse (Maybe Text)
glerNextBackwardToken =
lens _glerNextBackwardToken (\s a -> s { _glerNextBackwardToken = a })
glerNextForwardToken :: Lens' GetLogEventsResponse (Maybe Text)
glerNextForwardToken =
lens _glerNextForwardToken (\s a -> s { _glerNextForwardToken = a })
instance ToPath GetLogEvents where
toPath = const "/"
instance ToQuery GetLogEvents where
toQuery = const mempty
instance ToHeaders GetLogEvents
instance ToJSON GetLogEvents where
toJSON GetLogEvents{..} = object
[ "logGroupName" .= _gleLogGroupName
, "logStreamName" .= _gleLogStreamName
, "startTime" .= _gleStartTime
, "endTime" .= _gleEndTime
, "nextToken" .= _gleNextToken
, "limit" .= _gleLimit
, "startFromHead" .= _gleStartFromHead
]
instance AWSRequest GetLogEvents where
type Sv GetLogEvents = CloudWatchLogs
type Rs GetLogEvents = GetLogEventsResponse
request = post "GetLogEvents"
response = jsonResponse
instance FromJSON GetLogEventsResponse where
parseJSON = withObject "GetLogEventsResponse" $ \o -> GetLogEventsResponse
<$> o .:? "events" .!= mempty
<*> o .:? "nextBackwardToken"
<*> o .:? "nextForwardToken"