{-# 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 #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Network.AWS.CloudTrail.ListPublicKeys -- Copyright : (c) 2013-2018 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Returns all public keys whose private keys were used to sign the digest files within the specified time range. The public key is needed to validate digest files that were signed with its corresponding private key. -- -- module Network.AWS.CloudTrail.ListPublicKeys ( -- * Creating a Request listPublicKeys , ListPublicKeys -- * Request Lenses , lpkStartTime , lpkNextToken , lpkEndTime -- * Destructuring the Response , listPublicKeysResponse , ListPublicKeysResponse -- * Response Lenses , 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 -- | Requests the public keys for a specified time range. -- -- -- -- /See:/ 'listPublicKeys' smart constructor. data ListPublicKeys = ListPublicKeys' { _lpkStartTime :: !(Maybe POSIX) , _lpkNextToken :: !(Maybe Text) , _lpkEndTime :: !(Maybe POSIX) } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'ListPublicKeys' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'lpkStartTime' - Optionally specifies, in UTC, the start of the time range to look up public keys for CloudTrail digest files. If not specified, the current time is used, and the current public key is returned. -- -- * 'lpkNextToken' - Reserved for future use. -- -- * 'lpkEndTime' - Optionally specifies, in UTC, the end of the time range to look up public keys for CloudTrail digest files. If not specified, the current time is used. listPublicKeys :: ListPublicKeys listPublicKeys = ListPublicKeys' {_lpkStartTime = Nothing, _lpkNextToken = Nothing, _lpkEndTime = Nothing} -- | Optionally specifies, in UTC, the start of the time range to look up public keys for CloudTrail digest files. If not specified, the current time is used, and the current public key is returned. lpkStartTime :: Lens' ListPublicKeys (Maybe UTCTime) lpkStartTime = lens _lpkStartTime (\ s a -> s{_lpkStartTime = a}) . mapping _Time -- | Reserved for future use. lpkNextToken :: Lens' ListPublicKeys (Maybe Text) lpkNextToken = lens _lpkNextToken (\ s a -> s{_lpkNextToken = a}) -- | Optionally specifies, in UTC, the end of the time range to look up public keys for CloudTrail digest files. If not specified, the current time is used. 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 where instance NFData ListPublicKeys where 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 -- | Returns the objects or data listed below if successful. Otherwise, returns an error. -- -- -- -- /See:/ 'listPublicKeysResponse' smart constructor. data ListPublicKeysResponse = ListPublicKeysResponse' { _lpkrsPublicKeyList :: !(Maybe [PublicKey]) , _lpkrsNextToken :: !(Maybe Text) , _lpkrsResponseStatus :: !Int } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'ListPublicKeysResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'lpkrsPublicKeyList' - Contains an array of PublicKey objects. -- -- * 'lpkrsNextToken' - Reserved for future use. -- -- * 'lpkrsResponseStatus' - -- | The response status code. listPublicKeysResponse :: Int -- ^ 'lpkrsResponseStatus' -> ListPublicKeysResponse listPublicKeysResponse pResponseStatus_ = ListPublicKeysResponse' { _lpkrsPublicKeyList = Nothing , _lpkrsNextToken = Nothing , _lpkrsResponseStatus = pResponseStatus_ } -- | Contains an array of PublicKey objects. lpkrsPublicKeyList :: Lens' ListPublicKeysResponse [PublicKey] lpkrsPublicKeyList = lens _lpkrsPublicKeyList (\ s a -> s{_lpkrsPublicKeyList = a}) . _Default . _Coerce -- | Reserved for future use. lpkrsNextToken :: Lens' ListPublicKeysResponse (Maybe Text) lpkrsNextToken = lens _lpkrsNextToken (\ s a -> s{_lpkrsNextToken = a}) -- | -- | The response status code. lpkrsResponseStatus :: Lens' ListPublicKeysResponse Int lpkrsResponseStatus = lens _lpkrsResponseStatus (\ s a -> s{_lpkrsResponseStatus = a}) instance NFData ListPublicKeysResponse where