{-# 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.CloudTrail.ListPublicKeys
(
listPublicKeys
, ListPublicKeys
, lpkStartTime
, lpkNextToken
, lpkEndTime
, listPublicKeysResponse
, ListPublicKeysResponse
, lpkrsPublicKeyList
, lpkrsNextToken
, lpkrsResponseStatus
) where
import Network.AWS.CloudTrail.Types
import Network.AWS.CloudTrail.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data ListPublicKeys = ListPublicKeys'
{ _lpkStartTime :: !(Maybe POSIX)
, _lpkNextToken :: !(Maybe Text)
, _lpkEndTime :: !(Maybe POSIX)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
listPublicKeys
:: ListPublicKeys
listPublicKeys =
ListPublicKeys'
{ _lpkStartTime = Nothing
, _lpkNextToken = Nothing
, _lpkEndTime = Nothing
}
lpkStartTime :: Lens' ListPublicKeys (Maybe UTCTime)
lpkStartTime = lens _lpkStartTime (\ s a -> s{_lpkStartTime = a}) . mapping _Time;
lpkNextToken :: Lens' ListPublicKeys (Maybe Text)
lpkNextToken = lens _lpkNextToken (\ s a -> s{_lpkNextToken = a});
lpkEndTime :: Lens' ListPublicKeys (Maybe UTCTime)
lpkEndTime = lens _lpkEndTime (\ s a -> s{_lpkEndTime = a}) . mapping _Time;
instance AWSRequest ListPublicKeys where
type Rs ListPublicKeys = ListPublicKeysResponse
request = postJSON cloudTrail
response
= receiveJSON
(\ s h x ->
ListPublicKeysResponse' <$>
(x .?> "PublicKeyList" .!@ mempty) <*>
(x .?> "NextToken")
<*> (pure (fromEnum s)))
instance Hashable ListPublicKeys
instance NFData ListPublicKeys
instance ToHeaders ListPublicKeys where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("com.amazonaws.cloudtrail.v20131101.CloudTrail_20131101.ListPublicKeys"
:: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON ListPublicKeys where
toJSON ListPublicKeys'{..}
= object
(catMaybes
[("StartTime" .=) <$> _lpkStartTime,
("NextToken" .=) <$> _lpkNextToken,
("EndTime" .=) <$> _lpkEndTime])
instance ToPath ListPublicKeys where
toPath = const "/"
instance ToQuery ListPublicKeys where
toQuery = const mempty
data ListPublicKeysResponse = ListPublicKeysResponse'
{ _lpkrsPublicKeyList :: !(Maybe [PublicKey])
, _lpkrsNextToken :: !(Maybe Text)
, _lpkrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
listPublicKeysResponse
:: Int
-> ListPublicKeysResponse
listPublicKeysResponse pResponseStatus_ =
ListPublicKeysResponse'
{ _lpkrsPublicKeyList = Nothing
, _lpkrsNextToken = Nothing
, _lpkrsResponseStatus = pResponseStatus_
}
lpkrsPublicKeyList :: Lens' ListPublicKeysResponse [PublicKey]
lpkrsPublicKeyList = lens _lpkrsPublicKeyList (\ s a -> s{_lpkrsPublicKeyList = a}) . _Default . _Coerce;
lpkrsNextToken :: Lens' ListPublicKeysResponse (Maybe Text)
lpkrsNextToken = lens _lpkrsNextToken (\ s a -> s{_lpkrsNextToken = a});
lpkrsResponseStatus :: Lens' ListPublicKeysResponse Int
lpkrsResponseStatus = lens _lpkrsResponseStatus (\ s a -> s{_lpkrsResponseStatus = a});
instance NFData ListPublicKeysResponse