{-# 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 #-}
module Network.AWS.IoT.ListPolicies
(
listPolicies
, ListPolicies
, lpMarker
, lpAscendingOrder
, lpPageSize
, listPoliciesResponse
, ListPoliciesResponse
, lprsNextMarker
, lprsPolicies
, lprsResponseStatus
) where
import Network.AWS.IoT.Types
import Network.AWS.IoT.Types.Product
import Network.AWS.Lens
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data ListPolicies = ListPolicies'
{ _lpMarker :: !(Maybe Text)
, _lpAscendingOrder :: !(Maybe Bool)
, _lpPageSize :: !(Maybe Nat)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listPolicies
:: ListPolicies
listPolicies =
ListPolicies'
{_lpMarker = Nothing, _lpAscendingOrder = Nothing, _lpPageSize = Nothing}
lpMarker :: Lens' ListPolicies (Maybe Text)
lpMarker = lens _lpMarker (\ s a -> s{_lpMarker = a})
lpAscendingOrder :: Lens' ListPolicies (Maybe Bool)
lpAscendingOrder = lens _lpAscendingOrder (\ s a -> s{_lpAscendingOrder = a})
lpPageSize :: Lens' ListPolicies (Maybe Natural)
lpPageSize = lens _lpPageSize (\ s a -> s{_lpPageSize = a}) . mapping _Nat
instance AWSPager ListPolicies where
page rq rs
| stop (rs ^. lprsNextMarker) = Nothing
| stop (rs ^. lprsPolicies) = Nothing
| otherwise =
Just $ rq & lpMarker .~ rs ^. lprsNextMarker
instance AWSRequest ListPolicies where
type Rs ListPolicies = ListPoliciesResponse
request = get ioT
response
= receiveJSON
(\ s h x ->
ListPoliciesResponse' <$>
(x .?> "nextMarker") <*>
(x .?> "policies" .!@ mempty)
<*> (pure (fromEnum s)))
instance Hashable ListPolicies where
instance NFData ListPolicies where
instance ToHeaders ListPolicies where
toHeaders = const mempty
instance ToPath ListPolicies where
toPath = const "/policies"
instance ToQuery ListPolicies where
toQuery ListPolicies'{..}
= mconcat
["marker" =: _lpMarker,
"isAscendingOrder" =: _lpAscendingOrder,
"pageSize" =: _lpPageSize]
data ListPoliciesResponse = ListPoliciesResponse'
{ _lprsNextMarker :: !(Maybe Text)
, _lprsPolicies :: !(Maybe [Policy])
, _lprsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listPoliciesResponse
:: Int
-> ListPoliciesResponse
listPoliciesResponse pResponseStatus_ =
ListPoliciesResponse'
{ _lprsNextMarker = Nothing
, _lprsPolicies = Nothing
, _lprsResponseStatus = pResponseStatus_
}
lprsNextMarker :: Lens' ListPoliciesResponse (Maybe Text)
lprsNextMarker = lens _lprsNextMarker (\ s a -> s{_lprsNextMarker = a})
lprsPolicies :: Lens' ListPoliciesResponse [Policy]
lprsPolicies = lens _lprsPolicies (\ s a -> s{_lprsPolicies = a}) . _Default . _Coerce
lprsResponseStatus :: Lens' ListPoliciesResponse Int
lprsResponseStatus = lens _lprsResponseStatus (\ s a -> s{_lprsResponseStatus = a})
instance NFData ListPoliciesResponse where