amazonka-support-1.4.4: gen/Network/AWS/Support/DescribeCases.hs
{-# 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 <brendan.g.hay@gmail.com>
-- 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:
--
-- - One or more < CaseDetails> data types.
--
-- - 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