{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Amazonka.GuardDuty.StartMonitoringMembers
(
StartMonitoringMembers (..),
newStartMonitoringMembers,
startMonitoringMembers_detectorId,
startMonitoringMembers_accountIds,
StartMonitoringMembersResponse (..),
newStartMonitoringMembersResponse,
startMonitoringMembersResponse_httpStatus,
startMonitoringMembersResponse_unprocessedAccounts,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.GuardDuty.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data StartMonitoringMembers = StartMonitoringMembers'
{
StartMonitoringMembers -> Text
detectorId :: Prelude.Text,
StartMonitoringMembers -> NonEmpty Text
accountIds :: Prelude.NonEmpty Prelude.Text
}
deriving (StartMonitoringMembers -> StartMonitoringMembers -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: StartMonitoringMembers -> StartMonitoringMembers -> Bool
$c/= :: StartMonitoringMembers -> StartMonitoringMembers -> Bool
== :: StartMonitoringMembers -> StartMonitoringMembers -> Bool
$c== :: StartMonitoringMembers -> StartMonitoringMembers -> Bool
Prelude.Eq, ReadPrec [StartMonitoringMembers]
ReadPrec StartMonitoringMembers
Int -> ReadS StartMonitoringMembers
ReadS [StartMonitoringMembers]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [StartMonitoringMembers]
$creadListPrec :: ReadPrec [StartMonitoringMembers]
readPrec :: ReadPrec StartMonitoringMembers
$creadPrec :: ReadPrec StartMonitoringMembers
readList :: ReadS [StartMonitoringMembers]
$creadList :: ReadS [StartMonitoringMembers]
readsPrec :: Int -> ReadS StartMonitoringMembers
$creadsPrec :: Int -> ReadS StartMonitoringMembers
Prelude.Read, Int -> StartMonitoringMembers -> ShowS
[StartMonitoringMembers] -> ShowS
StartMonitoringMembers -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [StartMonitoringMembers] -> ShowS
$cshowList :: [StartMonitoringMembers] -> ShowS
show :: StartMonitoringMembers -> String
$cshow :: StartMonitoringMembers -> String
showsPrec :: Int -> StartMonitoringMembers -> ShowS
$cshowsPrec :: Int -> StartMonitoringMembers -> ShowS
Prelude.Show, forall x. Rep StartMonitoringMembers x -> StartMonitoringMembers
forall x. StartMonitoringMembers -> Rep StartMonitoringMembers x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep StartMonitoringMembers x -> StartMonitoringMembers
$cfrom :: forall x. StartMonitoringMembers -> Rep StartMonitoringMembers x
Prelude.Generic)
newStartMonitoringMembers ::
Prelude.Text ->
Prelude.NonEmpty Prelude.Text ->
StartMonitoringMembers
newStartMonitoringMembers :: Text -> NonEmpty Text -> StartMonitoringMembers
newStartMonitoringMembers Text
pDetectorId_ NonEmpty Text
pAccountIds_ =
StartMonitoringMembers'
{ $sel:detectorId:StartMonitoringMembers' :: Text
detectorId = Text
pDetectorId_,
$sel:accountIds:StartMonitoringMembers' :: NonEmpty Text
accountIds = forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced forall t b. AReview t b -> b -> t
Lens.# NonEmpty Text
pAccountIds_
}
startMonitoringMembers_detectorId :: Lens.Lens' StartMonitoringMembers Prelude.Text
startMonitoringMembers_detectorId :: Lens' StartMonitoringMembers Text
startMonitoringMembers_detectorId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartMonitoringMembers' {Text
detectorId :: Text
$sel:detectorId:StartMonitoringMembers' :: StartMonitoringMembers -> Text
detectorId} -> Text
detectorId) (\s :: StartMonitoringMembers
s@StartMonitoringMembers' {} Text
a -> StartMonitoringMembers
s {$sel:detectorId:StartMonitoringMembers' :: Text
detectorId = Text
a} :: StartMonitoringMembers)
startMonitoringMembers_accountIds :: Lens.Lens' StartMonitoringMembers (Prelude.NonEmpty Prelude.Text)
startMonitoringMembers_accountIds :: Lens' StartMonitoringMembers (NonEmpty Text)
startMonitoringMembers_accountIds = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartMonitoringMembers' {NonEmpty Text
accountIds :: NonEmpty Text
$sel:accountIds:StartMonitoringMembers' :: StartMonitoringMembers -> NonEmpty Text
accountIds} -> NonEmpty Text
accountIds) (\s :: StartMonitoringMembers
s@StartMonitoringMembers' {} NonEmpty Text
a -> StartMonitoringMembers
s {$sel:accountIds:StartMonitoringMembers' :: NonEmpty Text
accountIds = NonEmpty Text
a} :: StartMonitoringMembers) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
instance Core.AWSRequest StartMonitoringMembers where
type
AWSResponse StartMonitoringMembers =
StartMonitoringMembersResponse
request :: (Service -> Service)
-> StartMonitoringMembers -> Request StartMonitoringMembers
request Service -> Service
overrides =
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy StartMonitoringMembers
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse StartMonitoringMembers)))
response =
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
( \Int
s ResponseHeaders
h Object
x ->
Int -> [UnprocessedAccount] -> StartMonitoringMembersResponse
StartMonitoringMembersResponse'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x
forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"unprocessedAccounts"
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
)
)
instance Prelude.Hashable StartMonitoringMembers where
hashWithSalt :: Int -> StartMonitoringMembers -> Int
hashWithSalt Int
_salt StartMonitoringMembers' {NonEmpty Text
Text
accountIds :: NonEmpty Text
detectorId :: Text
$sel:accountIds:StartMonitoringMembers' :: StartMonitoringMembers -> NonEmpty Text
$sel:detectorId:StartMonitoringMembers' :: StartMonitoringMembers -> Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
detectorId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` NonEmpty Text
accountIds
instance Prelude.NFData StartMonitoringMembers where
rnf :: StartMonitoringMembers -> ()
rnf StartMonitoringMembers' {NonEmpty Text
Text
accountIds :: NonEmpty Text
detectorId :: Text
$sel:accountIds:StartMonitoringMembers' :: StartMonitoringMembers -> NonEmpty Text
$sel:detectorId:StartMonitoringMembers' :: StartMonitoringMembers -> Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Text
detectorId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf NonEmpty Text
accountIds
instance Data.ToHeaders StartMonitoringMembers where
toHeaders :: StartMonitoringMembers -> ResponseHeaders
toHeaders =
forall a b. a -> b -> a
Prelude.const
( forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON StartMonitoringMembers where
toJSON :: StartMonitoringMembers -> Value
toJSON StartMonitoringMembers' {NonEmpty Text
Text
accountIds :: NonEmpty Text
detectorId :: Text
$sel:accountIds:StartMonitoringMembers' :: StartMonitoringMembers -> NonEmpty Text
$sel:detectorId:StartMonitoringMembers' :: StartMonitoringMembers -> Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[forall a. a -> Maybe a
Prelude.Just (Key
"accountIds" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= NonEmpty Text
accountIds)]
)
instance Data.ToPath StartMonitoringMembers where
toPath :: StartMonitoringMembers -> ByteString
toPath StartMonitoringMembers' {NonEmpty Text
Text
accountIds :: NonEmpty Text
detectorId :: Text
$sel:accountIds:StartMonitoringMembers' :: StartMonitoringMembers -> NonEmpty Text
$sel:detectorId:StartMonitoringMembers' :: StartMonitoringMembers -> Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ByteString
"/detector/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
detectorId, ByteString
"/member/start"]
instance Data.ToQuery StartMonitoringMembers where
toQuery :: StartMonitoringMembers -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data StartMonitoringMembersResponse = StartMonitoringMembersResponse'
{
StartMonitoringMembersResponse -> Int
httpStatus :: Prelude.Int,
StartMonitoringMembersResponse -> [UnprocessedAccount]
unprocessedAccounts :: [UnprocessedAccount]
}
deriving (StartMonitoringMembersResponse
-> StartMonitoringMembersResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: StartMonitoringMembersResponse
-> StartMonitoringMembersResponse -> Bool
$c/= :: StartMonitoringMembersResponse
-> StartMonitoringMembersResponse -> Bool
== :: StartMonitoringMembersResponse
-> StartMonitoringMembersResponse -> Bool
$c== :: StartMonitoringMembersResponse
-> StartMonitoringMembersResponse -> Bool
Prelude.Eq, ReadPrec [StartMonitoringMembersResponse]
ReadPrec StartMonitoringMembersResponse
Int -> ReadS StartMonitoringMembersResponse
ReadS [StartMonitoringMembersResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [StartMonitoringMembersResponse]
$creadListPrec :: ReadPrec [StartMonitoringMembersResponse]
readPrec :: ReadPrec StartMonitoringMembersResponse
$creadPrec :: ReadPrec StartMonitoringMembersResponse
readList :: ReadS [StartMonitoringMembersResponse]
$creadList :: ReadS [StartMonitoringMembersResponse]
readsPrec :: Int -> ReadS StartMonitoringMembersResponse
$creadsPrec :: Int -> ReadS StartMonitoringMembersResponse
Prelude.Read, Int -> StartMonitoringMembersResponse -> ShowS
[StartMonitoringMembersResponse] -> ShowS
StartMonitoringMembersResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [StartMonitoringMembersResponse] -> ShowS
$cshowList :: [StartMonitoringMembersResponse] -> ShowS
show :: StartMonitoringMembersResponse -> String
$cshow :: StartMonitoringMembersResponse -> String
showsPrec :: Int -> StartMonitoringMembersResponse -> ShowS
$cshowsPrec :: Int -> StartMonitoringMembersResponse -> ShowS
Prelude.Show, forall x.
Rep StartMonitoringMembersResponse x
-> StartMonitoringMembersResponse
forall x.
StartMonitoringMembersResponse
-> Rep StartMonitoringMembersResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep StartMonitoringMembersResponse x
-> StartMonitoringMembersResponse
$cfrom :: forall x.
StartMonitoringMembersResponse
-> Rep StartMonitoringMembersResponse x
Prelude.Generic)
newStartMonitoringMembersResponse ::
Prelude.Int ->
StartMonitoringMembersResponse
newStartMonitoringMembersResponse :: Int -> StartMonitoringMembersResponse
newStartMonitoringMembersResponse Int
pHttpStatus_ =
StartMonitoringMembersResponse'
{ $sel:httpStatus:StartMonitoringMembersResponse' :: Int
httpStatus =
Int
pHttpStatus_,
$sel:unprocessedAccounts:StartMonitoringMembersResponse' :: [UnprocessedAccount]
unprocessedAccounts = forall a. Monoid a => a
Prelude.mempty
}
startMonitoringMembersResponse_httpStatus :: Lens.Lens' StartMonitoringMembersResponse Prelude.Int
startMonitoringMembersResponse_httpStatus :: Lens' StartMonitoringMembersResponse Int
startMonitoringMembersResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartMonitoringMembersResponse' {Int
httpStatus :: Int
$sel:httpStatus:StartMonitoringMembersResponse' :: StartMonitoringMembersResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: StartMonitoringMembersResponse
s@StartMonitoringMembersResponse' {} Int
a -> StartMonitoringMembersResponse
s {$sel:httpStatus:StartMonitoringMembersResponse' :: Int
httpStatus = Int
a} :: StartMonitoringMembersResponse)
startMonitoringMembersResponse_unprocessedAccounts :: Lens.Lens' StartMonitoringMembersResponse [UnprocessedAccount]
startMonitoringMembersResponse_unprocessedAccounts :: Lens' StartMonitoringMembersResponse [UnprocessedAccount]
startMonitoringMembersResponse_unprocessedAccounts = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartMonitoringMembersResponse' {[UnprocessedAccount]
unprocessedAccounts :: [UnprocessedAccount]
$sel:unprocessedAccounts:StartMonitoringMembersResponse' :: StartMonitoringMembersResponse -> [UnprocessedAccount]
unprocessedAccounts} -> [UnprocessedAccount]
unprocessedAccounts) (\s :: StartMonitoringMembersResponse
s@StartMonitoringMembersResponse' {} [UnprocessedAccount]
a -> StartMonitoringMembersResponse
s {$sel:unprocessedAccounts:StartMonitoringMembersResponse' :: [UnprocessedAccount]
unprocessedAccounts = [UnprocessedAccount]
a} :: StartMonitoringMembersResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
instance
Prelude.NFData
StartMonitoringMembersResponse
where
rnf :: StartMonitoringMembersResponse -> ()
rnf StartMonitoringMembersResponse' {Int
[UnprocessedAccount]
unprocessedAccounts :: [UnprocessedAccount]
httpStatus :: Int
$sel:unprocessedAccounts:StartMonitoringMembersResponse' :: StartMonitoringMembersResponse -> [UnprocessedAccount]
$sel:httpStatus:StartMonitoringMembersResponse' :: StartMonitoringMembersResponse -> Int
..} =
forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf [UnprocessedAccount]
unprocessedAccounts