module Network.AWS.Support.DescribeCases
(
describeCases
, DescribeCases
, dcIncludeResolvedCases
, dcCaseIdList
, dcAfterTime
, dcNextToken
, dcBeforeTime
, dcIncludeCommunications
, dcDisplayId
, dcLanguage
, dcMaxResults
, describeCasesResponse
, DescribeCasesResponse
, drsCases
, drsNextToken
, drsStatus
) where
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.Support.Types
import Network.AWS.Support.Types.Product
data DescribeCases = DescribeCases'
{ _dcIncludeResolvedCases :: !(Maybe Bool)
, _dcCaseIdList :: !(Maybe [Text])
, _dcAfterTime :: !(Maybe Text)
, _dcNextToken :: !(Maybe Text)
, _dcBeforeTime :: !(Maybe Text)
, _dcIncludeCommunications :: !(Maybe Bool)
, _dcDisplayId :: !(Maybe Text)
, _dcLanguage :: !(Maybe Text)
, _dcMaxResults :: !(Maybe Nat)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeCases
:: DescribeCases
describeCases =
DescribeCases'
{ _dcIncludeResolvedCases = Nothing
, _dcCaseIdList = Nothing
, _dcAfterTime = Nothing
, _dcNextToken = Nothing
, _dcBeforeTime = Nothing
, _dcIncludeCommunications = Nothing
, _dcDisplayId = Nothing
, _dcLanguage = Nothing
, _dcMaxResults = Nothing
}
dcIncludeResolvedCases :: Lens' DescribeCases (Maybe Bool)
dcIncludeResolvedCases = lens _dcIncludeResolvedCases (\ s a -> s{_dcIncludeResolvedCases = a});
dcCaseIdList :: Lens' DescribeCases [Text]
dcCaseIdList = lens _dcCaseIdList (\ s a -> s{_dcCaseIdList = a}) . _Default . _Coerce;
dcAfterTime :: Lens' DescribeCases (Maybe Text)
dcAfterTime = lens _dcAfterTime (\ s a -> s{_dcAfterTime = a});
dcNextToken :: Lens' DescribeCases (Maybe Text)
dcNextToken = lens _dcNextToken (\ s a -> s{_dcNextToken = a});
dcBeforeTime :: Lens' DescribeCases (Maybe Text)
dcBeforeTime = lens _dcBeforeTime (\ s a -> s{_dcBeforeTime = a});
dcIncludeCommunications :: Lens' DescribeCases (Maybe Bool)
dcIncludeCommunications = lens _dcIncludeCommunications (\ s a -> s{_dcIncludeCommunications = a});
dcDisplayId :: Lens' DescribeCases (Maybe Text)
dcDisplayId = lens _dcDisplayId (\ s a -> s{_dcDisplayId = a});
dcLanguage :: Lens' DescribeCases (Maybe Text)
dcLanguage = lens _dcLanguage (\ s a -> s{_dcLanguage = a});
dcMaxResults :: Lens' DescribeCases (Maybe Natural)
dcMaxResults = lens _dcMaxResults (\ s a -> s{_dcMaxResults = a}) . mapping _Nat;
instance AWSPager DescribeCases where
page rq rs
| stop (rs ^. drsNextToken) = Nothing
| stop (rs ^. drsCases) = Nothing
| otherwise =
Just $ rq & dcNextToken .~ rs ^. drsNextToken
instance AWSRequest DescribeCases where
type Rs DescribeCases = DescribeCasesResponse
request = postJSON support
response
= receiveJSON
(\ s h x ->
DescribeCasesResponse' <$>
(x .?> "cases" .!@ mempty) <*> (x .?> "nextToken")
<*> (pure (fromEnum s)))
instance ToHeaders DescribeCases where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AWSSupport_20130415.DescribeCases" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON DescribeCases where
toJSON DescribeCases'{..}
= object
(catMaybes
[("includeResolvedCases" .=) <$>
_dcIncludeResolvedCases,
("caseIdList" .=) <$> _dcCaseIdList,
("afterTime" .=) <$> _dcAfterTime,
("nextToken" .=) <$> _dcNextToken,
("beforeTime" .=) <$> _dcBeforeTime,
("includeCommunications" .=) <$>
_dcIncludeCommunications,
("displayId" .=) <$> _dcDisplayId,
("language" .=) <$> _dcLanguage,
("maxResults" .=) <$> _dcMaxResults])
instance ToPath DescribeCases where
toPath = const "/"
instance ToQuery DescribeCases where
toQuery = const mempty
data DescribeCasesResponse = DescribeCasesResponse'
{ _drsCases :: !(Maybe [CaseDetails])
, _drsNextToken :: !(Maybe Text)
, _drsStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeCasesResponse
:: Int
-> DescribeCasesResponse
describeCasesResponse pStatus_ =
DescribeCasesResponse'
{ _drsCases = Nothing
, _drsNextToken = Nothing
, _drsStatus = pStatus_
}
drsCases :: Lens' DescribeCasesResponse [CaseDetails]
drsCases = lens _drsCases (\ s a -> s{_drsCases = a}) . _Default . _Coerce;
drsNextToken :: Lens' DescribeCasesResponse (Maybe Text)
drsNextToken = lens _drsNextToken (\ s a -> s{_drsNextToken = a});
drsStatus :: Lens' DescribeCasesResponse Int
drsStatus = lens _drsStatus (\ s a -> s{_drsStatus = a});