module Network.AWS.CloudDirectory.ListPolicyAttachments
(
listPolicyAttachments
, ListPolicyAttachments
, lpaConsistencyLevel
, lpaNextToken
, lpaMaxResults
, lpaDirectoryARN
, lpaPolicyReference
, listPolicyAttachmentsResponse
, ListPolicyAttachmentsResponse
, lparsObjectIdentifiers
, lparsNextToken
, lparsResponseStatus
) where
import Network.AWS.CloudDirectory.Types
import Network.AWS.CloudDirectory.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data ListPolicyAttachments = ListPolicyAttachments'
{ _lpaConsistencyLevel :: !(Maybe ConsistencyLevel)
, _lpaNextToken :: !(Maybe Text)
, _lpaMaxResults :: !(Maybe Nat)
, _lpaDirectoryARN :: !Text
, _lpaPolicyReference :: !ObjectReference
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listPolicyAttachments
:: Text
-> ObjectReference
-> ListPolicyAttachments
listPolicyAttachments pDirectoryARN_ pPolicyReference_ =
ListPolicyAttachments'
{ _lpaConsistencyLevel = Nothing
, _lpaNextToken = Nothing
, _lpaMaxResults = Nothing
, _lpaDirectoryARN = pDirectoryARN_
, _lpaPolicyReference = pPolicyReference_
}
lpaConsistencyLevel :: Lens' ListPolicyAttachments (Maybe ConsistencyLevel)
lpaConsistencyLevel = lens _lpaConsistencyLevel (\ s a -> s{_lpaConsistencyLevel = a});
lpaNextToken :: Lens' ListPolicyAttachments (Maybe Text)
lpaNextToken = lens _lpaNextToken (\ s a -> s{_lpaNextToken = a});
lpaMaxResults :: Lens' ListPolicyAttachments (Maybe Natural)
lpaMaxResults = lens _lpaMaxResults (\ s a -> s{_lpaMaxResults = a}) . mapping _Nat;
lpaDirectoryARN :: Lens' ListPolicyAttachments Text
lpaDirectoryARN = lens _lpaDirectoryARN (\ s a -> s{_lpaDirectoryARN = a});
lpaPolicyReference :: Lens' ListPolicyAttachments ObjectReference
lpaPolicyReference = lens _lpaPolicyReference (\ s a -> s{_lpaPolicyReference = a});
instance AWSRequest ListPolicyAttachments where
type Rs ListPolicyAttachments =
ListPolicyAttachmentsResponse
request = postJSON cloudDirectory
response
= receiveJSON
(\ s h x ->
ListPolicyAttachmentsResponse' <$>
(x .?> "ObjectIdentifiers" .!@ mempty) <*>
(x .?> "NextToken")
<*> (pure (fromEnum s)))
instance Hashable ListPolicyAttachments where
instance NFData ListPolicyAttachments where
instance ToHeaders ListPolicyAttachments where
toHeaders ListPolicyAttachments'{..}
= mconcat
["x-amz-consistency-level" =# _lpaConsistencyLevel,
"x-amz-data-partition" =# _lpaDirectoryARN]
instance ToJSON ListPolicyAttachments where
toJSON ListPolicyAttachments'{..}
= object
(catMaybes
[("NextToken" .=) <$> _lpaNextToken,
("MaxResults" .=) <$> _lpaMaxResults,
Just ("PolicyReference" .= _lpaPolicyReference)])
instance ToPath ListPolicyAttachments where
toPath
= const
"/amazonclouddirectory/2017-01-11/policy/attachment"
instance ToQuery ListPolicyAttachments where
toQuery = const mempty
data ListPolicyAttachmentsResponse = ListPolicyAttachmentsResponse'
{ _lparsObjectIdentifiers :: !(Maybe [Text])
, _lparsNextToken :: !(Maybe Text)
, _lparsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listPolicyAttachmentsResponse
:: Int
-> ListPolicyAttachmentsResponse
listPolicyAttachmentsResponse pResponseStatus_ =
ListPolicyAttachmentsResponse'
{ _lparsObjectIdentifiers = Nothing
, _lparsNextToken = Nothing
, _lparsResponseStatus = pResponseStatus_
}
lparsObjectIdentifiers :: Lens' ListPolicyAttachmentsResponse [Text]
lparsObjectIdentifiers = lens _lparsObjectIdentifiers (\ s a -> s{_lparsObjectIdentifiers = a}) . _Default . _Coerce;
lparsNextToken :: Lens' ListPolicyAttachmentsResponse (Maybe Text)
lparsNextToken = lens _lparsNextToken (\ s a -> s{_lparsNextToken = a});
lparsResponseStatus :: Lens' ListPolicyAttachmentsResponse Int
lparsResponseStatus = lens _lparsResponseStatus (\ s a -> s{_lparsResponseStatus = a});
instance NFData ListPolicyAttachmentsResponse where