{-# 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.GuardDuty.DeleteMembers
(
deleteMembers
, DeleteMembers
, dmAccountIds
, dmDetectorId
, deleteMembersResponse
, DeleteMembersResponse
, drsUnprocessedAccounts
, drsResponseStatus
) 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
data DeleteMembers = DeleteMembers'
{ _dmAccountIds :: !(Maybe [Text])
, _dmDetectorId :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
deleteMembers
:: Text
-> DeleteMembers
deleteMembers pDetectorId_ =
DeleteMembers' {_dmAccountIds = Nothing, _dmDetectorId = pDetectorId_}
dmAccountIds :: Lens' DeleteMembers [Text]
dmAccountIds = lens _dmAccountIds (\ s a -> s{_dmAccountIds = a}) . _Default . _Coerce
dmDetectorId :: Lens' DeleteMembers Text
dmDetectorId = lens _dmDetectorId (\ s a -> s{_dmDetectorId = a})
instance AWSRequest DeleteMembers where
type Rs DeleteMembers = DeleteMembersResponse
request = postJSON guardDuty
response
= receiveJSON
(\ s h x ->
DeleteMembersResponse' <$>
(x .?> "unprocessedAccounts" .!@ mempty) <*>
(pure (fromEnum s)))
instance Hashable DeleteMembers where
instance NFData DeleteMembers where
instance ToHeaders DeleteMembers where
toHeaders
= const
(mconcat
["Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON DeleteMembers where
toJSON DeleteMembers'{..}
= object
(catMaybes [("accountIds" .=) <$> _dmAccountIds])
instance ToPath DeleteMembers where
toPath DeleteMembers'{..}
= mconcat
["/detector/", toBS _dmDetectorId, "/member/delete"]
instance ToQuery DeleteMembers where
toQuery = const mempty
data DeleteMembersResponse = DeleteMembersResponse'
{ _drsUnprocessedAccounts :: !(Maybe [UnprocessedAccount])
, _drsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
deleteMembersResponse
:: Int
-> DeleteMembersResponse
deleteMembersResponse pResponseStatus_ =
DeleteMembersResponse'
{_drsUnprocessedAccounts = Nothing, _drsResponseStatus = pResponseStatus_}
drsUnprocessedAccounts :: Lens' DeleteMembersResponse [UnprocessedAccount]
drsUnprocessedAccounts = lens _drsUnprocessedAccounts (\ s a -> s{_drsUnprocessedAccounts = a}) . _Default . _Coerce
drsResponseStatus :: Lens' DeleteMembersResponse Int
drsResponseStatus = lens _drsResponseStatus (\ s a -> s{_drsResponseStatus = a})
instance NFData DeleteMembersResponse where