{-# 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.StartMonitoringMembers
(
startMonitoringMembers
, StartMonitoringMembers
, sAccountIds
, sDetectorId
, startMonitoringMembersResponse
, StartMonitoringMembersResponse
, srsUnprocessedAccounts
, srsResponseStatus
) 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 StartMonitoringMembers = StartMonitoringMembers'
{ _sAccountIds :: !(Maybe [Text])
, _sDetectorId :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
startMonitoringMembers
:: Text
-> StartMonitoringMembers
startMonitoringMembers pDetectorId_ =
StartMonitoringMembers' {_sAccountIds = Nothing, _sDetectorId = pDetectorId_}
sAccountIds :: Lens' StartMonitoringMembers [Text]
sAccountIds = lens _sAccountIds (\ s a -> s{_sAccountIds = a}) . _Default . _Coerce
sDetectorId :: Lens' StartMonitoringMembers Text
sDetectorId = lens _sDetectorId (\ s a -> s{_sDetectorId = a})
instance AWSRequest StartMonitoringMembers where
type Rs StartMonitoringMembers =
StartMonitoringMembersResponse
request = postJSON guardDuty
response
= receiveJSON
(\ s h x ->
StartMonitoringMembersResponse' <$>
(x .?> "unprocessedAccounts" .!@ mempty) <*>
(pure (fromEnum s)))
instance Hashable StartMonitoringMembers where
instance NFData StartMonitoringMembers where
instance ToHeaders StartMonitoringMembers where
toHeaders
= const
(mconcat
["Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON StartMonitoringMembers where
toJSON StartMonitoringMembers'{..}
= object
(catMaybes [("accountIds" .=) <$> _sAccountIds])
instance ToPath StartMonitoringMembers where
toPath StartMonitoringMembers'{..}
= mconcat
["/detector/", toBS _sDetectorId, "/member/start"]
instance ToQuery StartMonitoringMembers where
toQuery = const mempty
data StartMonitoringMembersResponse = StartMonitoringMembersResponse'
{ _srsUnprocessedAccounts :: !(Maybe [UnprocessedAccount])
, _srsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
startMonitoringMembersResponse
:: Int
-> StartMonitoringMembersResponse
startMonitoringMembersResponse pResponseStatus_ =
StartMonitoringMembersResponse'
{_srsUnprocessedAccounts = Nothing, _srsResponseStatus = pResponseStatus_}
srsUnprocessedAccounts :: Lens' StartMonitoringMembersResponse [UnprocessedAccount]
srsUnprocessedAccounts = lens _srsUnprocessedAccounts (\ s a -> s{_srsUnprocessedAccounts = a}) . _Default . _Coerce
srsResponseStatus :: Lens' StartMonitoringMembersResponse Int
srsResponseStatus = lens _srsResponseStatus (\ s a -> s{_srsResponseStatus = a})
instance NFData StartMonitoringMembersResponse where