{-# 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.ListPolicyPrincipals
(
listPolicyPrincipals
, ListPolicyPrincipals
, lMarker
, lAscendingOrder
, lPageSize
, lPolicyName
, listPolicyPrincipalsResponse
, ListPolicyPrincipalsResponse
, lrsPrincipals
, lrsNextMarker
, lrsResponseStatus
) 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 ListPolicyPrincipals = ListPolicyPrincipals'
{ _lMarker :: !(Maybe Text)
, _lAscendingOrder :: !(Maybe Bool)
, _lPageSize :: !(Maybe Nat)
, _lPolicyName :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
listPolicyPrincipals
:: Text
-> ListPolicyPrincipals
listPolicyPrincipals pPolicyName_ =
ListPolicyPrincipals'
{ _lMarker = Nothing
, _lAscendingOrder = Nothing
, _lPageSize = Nothing
, _lPolicyName = pPolicyName_
}
lMarker :: Lens' ListPolicyPrincipals (Maybe Text)
lMarker = lens _lMarker (\ s a -> s{_lMarker = a});
lAscendingOrder :: Lens' ListPolicyPrincipals (Maybe Bool)
lAscendingOrder = lens _lAscendingOrder (\ s a -> s{_lAscendingOrder = a});
lPageSize :: Lens' ListPolicyPrincipals (Maybe Natural)
lPageSize = lens _lPageSize (\ s a -> s{_lPageSize = a}) . mapping _Nat;
lPolicyName :: Lens' ListPolicyPrincipals Text
lPolicyName = lens _lPolicyName (\ s a -> s{_lPolicyName = a});
instance AWSRequest ListPolicyPrincipals where
type Rs ListPolicyPrincipals =
ListPolicyPrincipalsResponse
request = get ioT
response
= receiveJSON
(\ s h x ->
ListPolicyPrincipalsResponse' <$>
(x .?> "principals" .!@ mempty) <*>
(x .?> "nextMarker")
<*> (pure (fromEnum s)))
instance Hashable ListPolicyPrincipals
instance NFData ListPolicyPrincipals
instance ToHeaders ListPolicyPrincipals where
toHeaders ListPolicyPrincipals'{..}
= mconcat ["x-amzn-iot-policy" =# _lPolicyName]
instance ToPath ListPolicyPrincipals where
toPath = const "/policy-principals"
instance ToQuery ListPolicyPrincipals where
toQuery ListPolicyPrincipals'{..}
= mconcat
["marker" =: _lMarker,
"isAscendingOrder" =: _lAscendingOrder,
"pageSize" =: _lPageSize]
data ListPolicyPrincipalsResponse = ListPolicyPrincipalsResponse'
{ _lrsPrincipals :: !(Maybe [Text])
, _lrsNextMarker :: !(Maybe Text)
, _lrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
listPolicyPrincipalsResponse
:: Int
-> ListPolicyPrincipalsResponse
listPolicyPrincipalsResponse pResponseStatus_ =
ListPolicyPrincipalsResponse'
{ _lrsPrincipals = Nothing
, _lrsNextMarker = Nothing
, _lrsResponseStatus = pResponseStatus_
}
lrsPrincipals :: Lens' ListPolicyPrincipalsResponse [Text]
lrsPrincipals = lens _lrsPrincipals (\ s a -> s{_lrsPrincipals = a}) . _Default . _Coerce;
lrsNextMarker :: Lens' ListPolicyPrincipalsResponse (Maybe Text)
lrsNextMarker = lens _lrsNextMarker (\ s a -> s{_lrsNextMarker = a});
lrsResponseStatus :: Lens' ListPolicyPrincipalsResponse Int
lrsResponseStatus = lens _lrsResponseStatus (\ s a -> s{_lrsResponseStatus = a});
instance NFData ListPolicyPrincipalsResponse