{-# 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.GuardDuty.ArchiveFindings -- Copyright : (c) 2013-2018 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Archives Amazon GuardDuty findings specified by the list of finding IDs. module Network.AWS.GuardDuty.ArchiveFindings ( -- * Creating a Request archiveFindings , ArchiveFindings -- * Request Lenses , afFindingIds , afDetectorId -- * Destructuring the Response , archiveFindingsResponse , ArchiveFindingsResponse -- * Response Lenses , afrsResponseStatus ) where import Network.AWS.GuardDuty.Types import Network.AWS.GuardDuty.Types.Product import Network.AWS.Lens import Network.AWS.Prelude import Network.AWS.Request import Network.AWS.Response -- | ArchiveFindings request body. -- -- /See:/ 'archiveFindings' smart constructor. data ArchiveFindings = ArchiveFindings' { _afFindingIds :: !(Maybe [Text]) , _afDetectorId :: !Text } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'ArchiveFindings' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'afFindingIds' - IDs of the findings that you want to archive. -- -- * 'afDetectorId' - The ID of the detector that specifies the GuardDuty service whose findings you want to archive. archiveFindings :: Text -- ^ 'afDetectorId' -> ArchiveFindings archiveFindings pDetectorId_ = ArchiveFindings' {_afFindingIds = Nothing, _afDetectorId = pDetectorId_} -- | IDs of the findings that you want to archive. afFindingIds :: Lens' ArchiveFindings [Text] afFindingIds = lens _afFindingIds (\ s a -> s{_afFindingIds = a}) . _Default . _Coerce -- | The ID of the detector that specifies the GuardDuty service whose findings you want to archive. afDetectorId :: Lens' ArchiveFindings Text afDetectorId = lens _afDetectorId (\ s a -> s{_afDetectorId = a}) instance AWSRequest ArchiveFindings where type Rs ArchiveFindings = ArchiveFindingsResponse request = postJSON guardDuty response = receiveEmpty (\ s h x -> ArchiveFindingsResponse' <$> (pure (fromEnum s))) instance Hashable ArchiveFindings where instance NFData ArchiveFindings where instance ToHeaders ArchiveFindings where toHeaders = const (mconcat ["Content-Type" =# ("application/x-amz-json-1.1" :: ByteString)]) instance ToJSON ArchiveFindings where toJSON ArchiveFindings'{..} = object (catMaybes [("findingIds" .=) <$> _afFindingIds]) instance ToPath ArchiveFindings where toPath ArchiveFindings'{..} = mconcat ["/detector/", toBS _afDetectorId, "/findings/archive"] instance ToQuery ArchiveFindings where toQuery = const mempty -- | /See:/ 'archiveFindingsResponse' smart constructor. newtype ArchiveFindingsResponse = ArchiveFindingsResponse' { _afrsResponseStatus :: Int } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'ArchiveFindingsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'afrsResponseStatus' - -- | The response status code. archiveFindingsResponse :: Int -- ^ 'afrsResponseStatus' -> ArchiveFindingsResponse archiveFindingsResponse pResponseStatus_ = ArchiveFindingsResponse' {_afrsResponseStatus = pResponseStatus_} -- | -- | The response status code. afrsResponseStatus :: Lens' ArchiveFindingsResponse Int afrsResponseStatus = lens _afrsResponseStatus (\ s a -> s{_afrsResponseStatus = a}) instance NFData ArchiveFindingsResponse where