module Network.AWS.IoT.ListPrincipalPolicies
(
listPrincipalPolicies
, ListPrincipalPolicies
, lppMarker
, lppAscendingOrder
, lppPageSize
, lppPrincipal
, listPrincipalPoliciesResponse
, ListPrincipalPoliciesResponse
, lpprsNextMarker
, lpprsPolicies
, lpprsResponseStatus
) where
import Network.AWS.IoT.Types
import Network.AWS.IoT.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data ListPrincipalPolicies = ListPrincipalPolicies'
{ _lppMarker :: !(Maybe Text)
, _lppAscendingOrder :: !(Maybe Bool)
, _lppPageSize :: !(Maybe Nat)
, _lppPrincipal :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
listPrincipalPolicies
:: Text
-> ListPrincipalPolicies
listPrincipalPolicies pPrincipal_ =
ListPrincipalPolicies'
{ _lppMarker = Nothing
, _lppAscendingOrder = Nothing
, _lppPageSize = Nothing
, _lppPrincipal = pPrincipal_
}
lppMarker :: Lens' ListPrincipalPolicies (Maybe Text)
lppMarker = lens _lppMarker (\ s a -> s{_lppMarker = a});
lppAscendingOrder :: Lens' ListPrincipalPolicies (Maybe Bool)
lppAscendingOrder = lens _lppAscendingOrder (\ s a -> s{_lppAscendingOrder = a});
lppPageSize :: Lens' ListPrincipalPolicies (Maybe Natural)
lppPageSize = lens _lppPageSize (\ s a -> s{_lppPageSize = a}) . mapping _Nat;
lppPrincipal :: Lens' ListPrincipalPolicies Text
lppPrincipal = lens _lppPrincipal (\ s a -> s{_lppPrincipal = a});
instance AWSRequest ListPrincipalPolicies where
type Rs ListPrincipalPolicies =
ListPrincipalPoliciesResponse
request = get ioT
response
= receiveJSON
(\ s h x ->
ListPrincipalPoliciesResponse' <$>
(x .?> "nextMarker") <*>
(x .?> "policies" .!@ mempty)
<*> (pure (fromEnum s)))
instance Hashable ListPrincipalPolicies
instance NFData ListPrincipalPolicies
instance ToHeaders ListPrincipalPolicies where
toHeaders ListPrincipalPolicies'{..}
= mconcat ["x-amzn-iot-principal" =# _lppPrincipal]
instance ToPath ListPrincipalPolicies where
toPath = const "/principal-policies"
instance ToQuery ListPrincipalPolicies where
toQuery ListPrincipalPolicies'{..}
= mconcat
["marker" =: _lppMarker,
"isAscendingOrder" =: _lppAscendingOrder,
"pageSize" =: _lppPageSize]
data ListPrincipalPoliciesResponse = ListPrincipalPoliciesResponse'
{ _lpprsNextMarker :: !(Maybe Text)
, _lpprsPolicies :: !(Maybe [Policy])
, _lpprsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
listPrincipalPoliciesResponse
:: Int
-> ListPrincipalPoliciesResponse
listPrincipalPoliciesResponse pResponseStatus_ =
ListPrincipalPoliciesResponse'
{ _lpprsNextMarker = Nothing
, _lpprsPolicies = Nothing
, _lpprsResponseStatus = pResponseStatus_
}
lpprsNextMarker :: Lens' ListPrincipalPoliciesResponse (Maybe Text)
lpprsNextMarker = lens _lpprsNextMarker (\ s a -> s{_lpprsNextMarker = a});
lpprsPolicies :: Lens' ListPrincipalPoliciesResponse [Policy]
lpprsPolicies = lens _lpprsPolicies (\ s a -> s{_lpprsPolicies = a}) . _Default . _Coerce;
lpprsResponseStatus :: Lens' ListPrincipalPoliciesResponse Int
lpprsResponseStatus = lens _lpprsResponseStatus (\ s a -> s{_lpprsResponseStatus = a});
instance NFData ListPrincipalPoliciesResponse