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.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 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 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});