{-# 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.ListAttachedPolicies
(
listAttachedPolicies
, ListAttachedPolicies
, lapMarker
, lapRecursive
, lapPageSize
, lapTarget
, listAttachedPoliciesResponse
, ListAttachedPoliciesResponse
, laprsNextMarker
, laprsPolicies
, laprsResponseStatus
) 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 ListAttachedPolicies = ListAttachedPolicies'
{ _lapMarker :: !(Maybe Text)
, _lapRecursive :: !(Maybe Bool)
, _lapPageSize :: !(Maybe Nat)
, _lapTarget :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listAttachedPolicies
:: Text
-> ListAttachedPolicies
listAttachedPolicies pTarget_ =
ListAttachedPolicies'
{ _lapMarker = Nothing
, _lapRecursive = Nothing
, _lapPageSize = Nothing
, _lapTarget = pTarget_
}
lapMarker :: Lens' ListAttachedPolicies (Maybe Text)
lapMarker = lens _lapMarker (\ s a -> s{_lapMarker = a})
lapRecursive :: Lens' ListAttachedPolicies (Maybe Bool)
lapRecursive = lens _lapRecursive (\ s a -> s{_lapRecursive = a})
lapPageSize :: Lens' ListAttachedPolicies (Maybe Natural)
lapPageSize = lens _lapPageSize (\ s a -> s{_lapPageSize = a}) . mapping _Nat
lapTarget :: Lens' ListAttachedPolicies Text
lapTarget = lens _lapTarget (\ s a -> s{_lapTarget = a})
instance AWSRequest ListAttachedPolicies where
type Rs ListAttachedPolicies =
ListAttachedPoliciesResponse
request = postJSON ioT
response
= receiveJSON
(\ s h x ->
ListAttachedPoliciesResponse' <$>
(x .?> "nextMarker") <*>
(x .?> "policies" .!@ mempty)
<*> (pure (fromEnum s)))
instance Hashable ListAttachedPolicies where
instance NFData ListAttachedPolicies where
instance ToHeaders ListAttachedPolicies where
toHeaders = const mempty
instance ToJSON ListAttachedPolicies where
toJSON = const (Object mempty)
instance ToPath ListAttachedPolicies where
toPath ListAttachedPolicies'{..}
= mconcat ["/attached-policies/", toBS _lapTarget]
instance ToQuery ListAttachedPolicies where
toQuery ListAttachedPolicies'{..}
= mconcat
["marker" =: _lapMarker,
"recursive" =: _lapRecursive,
"pageSize" =: _lapPageSize]
data ListAttachedPoliciesResponse = ListAttachedPoliciesResponse'
{ _laprsNextMarker :: !(Maybe Text)
, _laprsPolicies :: !(Maybe [Policy])
, _laprsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listAttachedPoliciesResponse
:: Int
-> ListAttachedPoliciesResponse
listAttachedPoliciesResponse pResponseStatus_ =
ListAttachedPoliciesResponse'
{ _laprsNextMarker = Nothing
, _laprsPolicies = Nothing
, _laprsResponseStatus = pResponseStatus_
}
laprsNextMarker :: Lens' ListAttachedPoliciesResponse (Maybe Text)
laprsNextMarker = lens _laprsNextMarker (\ s a -> s{_laprsNextMarker = a})
laprsPolicies :: Lens' ListAttachedPoliciesResponse [Policy]
laprsPolicies = lens _laprsPolicies (\ s a -> s{_laprsPolicies = a}) . _Default . _Coerce
laprsResponseStatus :: Lens' ListAttachedPoliciesResponse Int
laprsResponseStatus = lens _laprsResponseStatus (\ s a -> s{_laprsResponseStatus = a})
instance NFData ListAttachedPoliciesResponse where