{-# 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.Mobile.ListBundles -- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- List all available bundles. -- -- module Network.AWS.Mobile.ListBundles ( -- * Creating a Request listBundles , ListBundles -- * Request Lenses , lbNextToken , lbMaxResults -- * Destructuring the Response , listBundlesResponse , ListBundlesResponse -- * Response Lenses , lbrsBundleList , lbrsNextToken , lbrsResponseStatus ) where import Network.AWS.Lens import Network.AWS.Mobile.Types import Network.AWS.Mobile.Types.Product import Network.AWS.Prelude import Network.AWS.Request import Network.AWS.Response -- | Request structure to request all available bundles. -- -- -- -- /See:/ 'listBundles' smart constructor. data ListBundles = ListBundles' { _lbNextToken :: !(Maybe Text) , _lbMaxResults :: !(Maybe Int) } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'ListBundles' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'lbNextToken' - Pagination token. Set to null to start listing bundles from start. If non-null pagination token is returned in a result, then pass its value in here in another request to list more bundles. -- -- * 'lbMaxResults' - Maximum number of records to list in a single response. listBundles :: ListBundles listBundles = ListBundles' {_lbNextToken = Nothing, _lbMaxResults = Nothing} -- | Pagination token. Set to null to start listing bundles from start. If non-null pagination token is returned in a result, then pass its value in here in another request to list more bundles. lbNextToken :: Lens' ListBundles (Maybe Text) lbNextToken = lens _lbNextToken (\ s a -> s{_lbNextToken = a}); -- | Maximum number of records to list in a single response. lbMaxResults :: Lens' ListBundles (Maybe Int) lbMaxResults = lens _lbMaxResults (\ s a -> s{_lbMaxResults = a}); instance AWSRequest ListBundles where type Rs ListBundles = ListBundlesResponse request = get mobile response = receiveJSON (\ s h x -> ListBundlesResponse' <$> (x .?> "bundleList" .!@ mempty) <*> (x .?> "nextToken") <*> (pure (fromEnum s))) instance Hashable ListBundles where instance NFData ListBundles where instance ToHeaders ListBundles where toHeaders = const (mconcat ["Content-Type" =# ("application/x-amz-json-1.1" :: ByteString)]) instance ToPath ListBundles where toPath = const "/bundles" instance ToQuery ListBundles where toQuery ListBundles'{..} = mconcat ["nextToken" =: _lbNextToken, "maxResults" =: _lbMaxResults] -- | Result structure contains a list of all available bundles with details. -- -- -- -- /See:/ 'listBundlesResponse' smart constructor. data ListBundlesResponse = ListBundlesResponse' { _lbrsBundleList :: !(Maybe [BundleDetails]) , _lbrsNextToken :: !(Maybe Text) , _lbrsResponseStatus :: !Int } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'ListBundlesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'lbrsBundleList' - A list of bundles. -- -- * 'lbrsNextToken' - Pagination token. If non-null pagination token is returned in a result, then pass its value in another request to fetch more entries. -- -- * 'lbrsResponseStatus' - -- | The response status code. listBundlesResponse :: Int -- ^ 'lbrsResponseStatus' -> ListBundlesResponse listBundlesResponse pResponseStatus_ = ListBundlesResponse' { _lbrsBundleList = Nothing , _lbrsNextToken = Nothing , _lbrsResponseStatus = pResponseStatus_ } -- | A list of bundles. lbrsBundleList :: Lens' ListBundlesResponse [BundleDetails] lbrsBundleList = lens _lbrsBundleList (\ s a -> s{_lbrsBundleList = a}) . _Default . _Coerce; -- | Pagination token. If non-null pagination token is returned in a result, then pass its value in another request to fetch more entries. lbrsNextToken :: Lens' ListBundlesResponse (Maybe Text) lbrsNextToken = lens _lbrsNextToken (\ s a -> s{_lbrsNextToken = a}); -- | -- | The response status code. lbrsResponseStatus :: Lens' ListBundlesResponse Int lbrsResponseStatus = lens _lbrsResponseStatus (\ s a -> s{_lbrsResponseStatus = a}); instance NFData ListBundlesResponse where