{-# 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 #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Network.AWS.Support.DescribeCases -- Copyright : (c) 2013-2016 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Returns a list of cases that you specify by passing one or more case -- IDs. In addition, you can filter the cases by date by setting values for -- the 'AfterTime' and 'BeforeTime' request parameters. You can set values -- for the 'IncludeResolvedCases' and 'IncludeCommunications' request -- parameters to control how much information is returned. -- -- Case data is available for 12 months after creation. If a case was -- created more than 12 months ago, a request for data might cause an -- error. -- -- The response returns the following in JSON format: -- -- 1. One or more < CaseDetails> data types. -- 2. One or more 'NextToken' values, which specify where to paginate the -- returned records represented by the 'CaseDetails' objects. -- -- This operation returns paginated results. module Network.AWS.Support.DescribeCases ( -- * Creating a Request describeCases , DescribeCases -- * Request Lenses , dcIncludeResolvedCases , dcCaseIdList , dcAfterTime , dcBeforeTime , dcNextToken , dcIncludeCommunications , dcDisplayId , dcLanguage , dcMaxResults -- * Destructuring the Response , describeCasesResponse , DescribeCasesResponse -- * Response Lenses , drsCases , drsNextToken , drsResponseStatus ) where import Network.AWS.Lens 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 -- | /See:/ 'describeCases' smart constructor. data DescribeCases = DescribeCases' { _dcIncludeResolvedCases :: !(Maybe Bool) , _dcCaseIdList :: !(Maybe [Text]) , _dcAfterTime :: !(Maybe Text) , _dcBeforeTime :: !(Maybe Text) , _dcNextToken :: !(Maybe Text) , _dcIncludeCommunications :: !(Maybe Bool) , _dcDisplayId :: !(Maybe Text) , _dcLanguage :: !(Maybe Text) , _dcMaxResults :: !(Maybe Nat) } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'DescribeCases' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'dcIncludeResolvedCases' -- -- * 'dcCaseIdList' -- -- * 'dcAfterTime' -- -- * 'dcBeforeTime' -- -- * 'dcNextToken' -- -- * 'dcIncludeCommunications' -- -- * 'dcDisplayId' -- -- * 'dcLanguage' -- -- * 'dcMaxResults' describeCases :: DescribeCases describeCases = DescribeCases' { _dcIncludeResolvedCases = Nothing , _dcCaseIdList = Nothing , _dcAfterTime = Nothing , _dcBeforeTime = Nothing , _dcNextToken = Nothing , _dcIncludeCommunications = Nothing , _dcDisplayId = Nothing , _dcLanguage = Nothing , _dcMaxResults = Nothing } -- | Specifies whether resolved support cases should be included in the -- < DescribeCases> results. The default is /false/. dcIncludeResolvedCases :: Lens' DescribeCases (Maybe Bool) dcIncludeResolvedCases = lens _dcIncludeResolvedCases (\ s a -> s{_dcIncludeResolvedCases = a}); -- | A list of ID numbers of the support cases you want returned. The maximum -- number of cases is 100. dcCaseIdList :: Lens' DescribeCases [Text] dcCaseIdList = lens _dcCaseIdList (\ s a -> s{_dcCaseIdList = a}) . _Default . _Coerce; -- | The start date for a filtered date search on support case -- communications. Case communications are available for 12 months after -- creation. dcAfterTime :: Lens' DescribeCases (Maybe Text) dcAfterTime = lens _dcAfterTime (\ s a -> s{_dcAfterTime = a}); -- | The end date for a filtered date search on support case communications. -- Case communications are available for 12 months after creation. dcBeforeTime :: Lens' DescribeCases (Maybe Text) dcBeforeTime = lens _dcBeforeTime (\ s a -> s{_dcBeforeTime = a}); -- | A resumption point for pagination. dcNextToken :: Lens' DescribeCases (Maybe Text) dcNextToken = lens _dcNextToken (\ s a -> s{_dcNextToken = a}); -- | Specifies whether communications should be included in the -- < DescribeCases> results. The default is /true/. dcIncludeCommunications :: Lens' DescribeCases (Maybe Bool) dcIncludeCommunications = lens _dcIncludeCommunications (\ s a -> s{_dcIncludeCommunications = a}); -- | The ID displayed for a case in the AWS Support Center user interface. dcDisplayId :: Lens' DescribeCases (Maybe Text) dcDisplayId = lens _dcDisplayId (\ s a -> s{_dcDisplayId = a}); -- | The ISO 639-1 code for the language in which AWS provides support. AWS -- Support currently supports English (\"en\") and Japanese (\"ja\"). -- Language parameters must be passed explicitly for operations that take -- them. dcLanguage :: Lens' DescribeCases (Maybe Text) dcLanguage = lens _dcLanguage (\ s a -> s{_dcLanguage = a}); -- | The maximum number of results to return before paginating. 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 Hashable DescribeCases instance NFData DescribeCases 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, ("beforeTime" .=) <$> _dcBeforeTime, ("nextToken" .=) <$> _dcNextToken, ("includeCommunications" .=) <$> _dcIncludeCommunications, ("displayId" .=) <$> _dcDisplayId, ("language" .=) <$> _dcLanguage, ("maxResults" .=) <$> _dcMaxResults]) instance ToPath DescribeCases where toPath = const "/" instance ToQuery DescribeCases where toQuery = const mempty -- | Returns an array of < CaseDetails> objects and a 'NextToken' that -- defines a point for pagination in the result set. -- -- /See:/ 'describeCasesResponse' smart constructor. data DescribeCasesResponse = DescribeCasesResponse' { _drsCases :: !(Maybe [CaseDetails]) , _drsNextToken :: !(Maybe Text) , _drsResponseStatus :: !Int } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'DescribeCasesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'drsCases' -- -- * 'drsNextToken' -- -- * 'drsResponseStatus' describeCasesResponse :: Int -- ^ 'drsResponseStatus' -> DescribeCasesResponse describeCasesResponse pResponseStatus_ = DescribeCasesResponse' { _drsCases = Nothing , _drsNextToken = Nothing , _drsResponseStatus = pResponseStatus_ } -- | The details for the cases that match the request. drsCases :: Lens' DescribeCasesResponse [CaseDetails] drsCases = lens _drsCases (\ s a -> s{_drsCases = a}) . _Default . _Coerce; -- | A resumption point for pagination. drsNextToken :: Lens' DescribeCasesResponse (Maybe Text) drsNextToken = lens _drsNextToken (\ s a -> s{_drsNextToken = a}); -- | The response status code. drsResponseStatus :: Lens' DescribeCasesResponse Int drsResponseStatus = lens _drsResponseStatus (\ s a -> s{_drsResponseStatus = a}); instance NFData DescribeCasesResponse