{-# 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.SDB.ListDomains -- Copyright : (c) 2013-2016 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- The 'ListDomains' operation lists all domains associated with the Access Key ID. It returns domain names up to the limit set by <#MaxNumberOfDomains MaxNumberOfDomains>. A <#NextToken NextToken> is returned if there are more than 'MaxNumberOfDomains' domains. Calling 'ListDomains' successive times with the 'NextToken' provided by the operation returns up to 'MaxNumberOfDomains' more domain names with each successive operation call. -- -- This operation returns paginated results. module Network.AWS.SDB.ListDomains ( -- * Creating a Request listDomains , ListDomains -- * Request Lenses , ldMaxNumberOfDomains , ldNextToken -- * Destructuring the Response , listDomainsResponse , ListDomainsResponse -- * Response Lenses , ldrsDomainNames , ldrsNextToken , ldrsResponseStatus ) where import Network.AWS.Lens import Network.AWS.Pager import Network.AWS.Prelude import Network.AWS.Request import Network.AWS.Response import Network.AWS.SDB.Types import Network.AWS.SDB.Types.Product -- | /See:/ 'listDomains' smart constructor. data ListDomains = ListDomains' { _ldMaxNumberOfDomains :: !(Maybe Int) , _ldNextToken :: !(Maybe Text) } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'ListDomains' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'ldMaxNumberOfDomains' -- -- * 'ldNextToken' listDomains :: ListDomains listDomains = ListDomains' { _ldMaxNumberOfDomains = Nothing , _ldNextToken = Nothing } -- | The maximum number of domain names you want returned. The range is 1 to 100. The default setting is 100. ldMaxNumberOfDomains :: Lens' ListDomains (Maybe Int) ldMaxNumberOfDomains = lens _ldMaxNumberOfDomains (\ s a -> s{_ldMaxNumberOfDomains = a}); -- | A string informing Amazon SimpleDB where to start the next list of domain names. ldNextToken :: Lens' ListDomains (Maybe Text) ldNextToken = lens _ldNextToken (\ s a -> s{_ldNextToken = a}); instance AWSPager ListDomains where page rq rs | stop (rs ^. ldrsNextToken) = Nothing | stop (rs ^. ldrsDomainNames) = Nothing | otherwise = Just $ rq & ldNextToken .~ rs ^. ldrsNextToken instance AWSRequest ListDomains where type Rs ListDomains = ListDomainsResponse request = postQuery sdb response = receiveXMLWrapper "ListDomainsResult" (\ s h x -> ListDomainsResponse' <$> (may (parseXMLList "DomainName") x) <*> (x .@? "NextToken") <*> (pure (fromEnum s))) instance Hashable ListDomains instance NFData ListDomains instance ToHeaders ListDomains where toHeaders = const mempty instance ToPath ListDomains where toPath = const "/" instance ToQuery ListDomains where toQuery ListDomains'{..} = mconcat ["Action" =: ("ListDomains" :: ByteString), "Version" =: ("2009-04-15" :: ByteString), "MaxNumberOfDomains" =: _ldMaxNumberOfDomains, "NextToken" =: _ldNextToken] -- | /See:/ 'listDomainsResponse' smart constructor. data ListDomainsResponse = ListDomainsResponse' { _ldrsDomainNames :: !(Maybe [Text]) , _ldrsNextToken :: !(Maybe Text) , _ldrsResponseStatus :: !Int } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'ListDomainsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'ldrsDomainNames' -- -- * 'ldrsNextToken' -- -- * 'ldrsResponseStatus' listDomainsResponse :: Int -- ^ 'ldrsResponseStatus' -> ListDomainsResponse listDomainsResponse pResponseStatus_ = ListDomainsResponse' { _ldrsDomainNames = Nothing , _ldrsNextToken = Nothing , _ldrsResponseStatus = pResponseStatus_ } -- | A list of domain names that match the expression. ldrsDomainNames :: Lens' ListDomainsResponse [Text] ldrsDomainNames = lens _ldrsDomainNames (\ s a -> s{_ldrsDomainNames = a}) . _Default . _Coerce; -- | An opaque token indicating that there are more domains than the specified 'MaxNumberOfDomains' still available. ldrsNextToken :: Lens' ListDomainsResponse (Maybe Text) ldrsNextToken = lens _ldrsNextToken (\ s a -> s{_ldrsNextToken = a}); -- | The response status code. ldrsResponseStatus :: Lens' ListDomainsResponse Int ldrsResponseStatus = lens _ldrsResponseStatus (\ s a -> s{_ldrsResponseStatus = a}); instance NFData ListDomainsResponse