{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Network.AWS.XRay.GetTraceSummaries
(
getTraceSummaries
, GetTraceSummaries
, gtsFilterExpression
, gtsNextToken
, gtsSampling
, gtsStartTime
, gtsEndTime
, getTraceSummariesResponse
, GetTraceSummariesResponse
, gtsrsTracesProcessedCount
, gtsrsNextToken
, gtsrsApproximateTime
, gtsrsTraceSummaries
, gtsrsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.XRay.Types
import Network.AWS.XRay.Types.Product
data GetTraceSummaries = GetTraceSummaries'
{ _gtsFilterExpression :: !(Maybe Text)
, _gtsNextToken :: !(Maybe Text)
, _gtsSampling :: !(Maybe Bool)
, _gtsStartTime :: !POSIX
, _gtsEndTime :: !POSIX
} deriving (Eq, Read, Show, Data, Typeable, Generic)
getTraceSummaries
:: UTCTime
-> UTCTime
-> GetTraceSummaries
getTraceSummaries pStartTime_ pEndTime_ =
GetTraceSummaries'
{ _gtsFilterExpression = Nothing
, _gtsNextToken = Nothing
, _gtsSampling = Nothing
, _gtsStartTime = _Time # pStartTime_
, _gtsEndTime = _Time # pEndTime_
}
gtsFilterExpression :: Lens' GetTraceSummaries (Maybe Text)
gtsFilterExpression = lens _gtsFilterExpression (\ s a -> s{_gtsFilterExpression = a})
gtsNextToken :: Lens' GetTraceSummaries (Maybe Text)
gtsNextToken = lens _gtsNextToken (\ s a -> s{_gtsNextToken = a})
gtsSampling :: Lens' GetTraceSummaries (Maybe Bool)
gtsSampling = lens _gtsSampling (\ s a -> s{_gtsSampling = a})
gtsStartTime :: Lens' GetTraceSummaries UTCTime
gtsStartTime = lens _gtsStartTime (\ s a -> s{_gtsStartTime = a}) . _Time
gtsEndTime :: Lens' GetTraceSummaries UTCTime
gtsEndTime = lens _gtsEndTime (\ s a -> s{_gtsEndTime = a}) . _Time
instance AWSPager GetTraceSummaries where
page rq rs
| stop (rs ^. gtsrsNextToken) = Nothing
| stop (rs ^. gtsrsTraceSummaries) = Nothing
| otherwise =
Just $ rq & gtsNextToken .~ rs ^. gtsrsNextToken
instance AWSRequest GetTraceSummaries where
type Rs GetTraceSummaries = GetTraceSummariesResponse
request = postJSON xRay
response
= receiveJSON
(\ s h x ->
GetTraceSummariesResponse' <$>
(x .?> "TracesProcessedCount") <*>
(x .?> "NextToken")
<*> (x .?> "ApproximateTime")
<*> (x .?> "TraceSummaries" .!@ mempty)
<*> (pure (fromEnum s)))
instance Hashable GetTraceSummaries where
instance NFData GetTraceSummaries where
instance ToHeaders GetTraceSummaries where
toHeaders = const mempty
instance ToJSON GetTraceSummaries where
toJSON GetTraceSummaries'{..}
= object
(catMaybes
[("FilterExpression" .=) <$> _gtsFilterExpression,
("NextToken" .=) <$> _gtsNextToken,
("Sampling" .=) <$> _gtsSampling,
Just ("StartTime" .= _gtsStartTime),
Just ("EndTime" .= _gtsEndTime)])
instance ToPath GetTraceSummaries where
toPath = const "/TraceSummaries"
instance ToQuery GetTraceSummaries where
toQuery = const mempty
data GetTraceSummariesResponse = GetTraceSummariesResponse'
{ _gtsrsTracesProcessedCount :: !(Maybe Integer)
, _gtsrsNextToken :: !(Maybe Text)
, _gtsrsApproximateTime :: !(Maybe POSIX)
, _gtsrsTraceSummaries :: !(Maybe [TraceSummary])
, _gtsrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
getTraceSummariesResponse
:: Int
-> GetTraceSummariesResponse
getTraceSummariesResponse pResponseStatus_ =
GetTraceSummariesResponse'
{ _gtsrsTracesProcessedCount = Nothing
, _gtsrsNextToken = Nothing
, _gtsrsApproximateTime = Nothing
, _gtsrsTraceSummaries = Nothing
, _gtsrsResponseStatus = pResponseStatus_
}
gtsrsTracesProcessedCount :: Lens' GetTraceSummariesResponse (Maybe Integer)
gtsrsTracesProcessedCount = lens _gtsrsTracesProcessedCount (\ s a -> s{_gtsrsTracesProcessedCount = a})
gtsrsNextToken :: Lens' GetTraceSummariesResponse (Maybe Text)
gtsrsNextToken = lens _gtsrsNextToken (\ s a -> s{_gtsrsNextToken = a})
gtsrsApproximateTime :: Lens' GetTraceSummariesResponse (Maybe UTCTime)
gtsrsApproximateTime = lens _gtsrsApproximateTime (\ s a -> s{_gtsrsApproximateTime = a}) . mapping _Time
gtsrsTraceSummaries :: Lens' GetTraceSummariesResponse [TraceSummary]
gtsrsTraceSummaries = lens _gtsrsTraceSummaries (\ s a -> s{_gtsrsTraceSummaries = a}) . _Default . _Coerce
gtsrsResponseStatus :: Lens' GetTraceSummariesResponse Int
gtsrsResponseStatus = lens _gtsrsResponseStatus (\ s a -> s{_gtsrsResponseStatus = a})
instance NFData GetTraceSummariesResponse where