{-# 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.InviteMembers
(
InviteMembers (..),
newInviteMembers,
inviteMembers_disableEmailNotification,
inviteMembers_message,
inviteMembers_detectorId,
inviteMembers_accountIds,
InviteMembersResponse (..),
newInviteMembersResponse,
inviteMembersResponse_httpStatus,
inviteMembersResponse_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 InviteMembers = InviteMembers'
{
InviteMembers -> Maybe Bool
disableEmailNotification :: Prelude.Maybe Prelude.Bool,
InviteMembers -> Maybe Text
message :: Prelude.Maybe Prelude.Text,
InviteMembers -> Text
detectorId :: Prelude.Text,
InviteMembers -> NonEmpty Text
accountIds :: Prelude.NonEmpty Prelude.Text
}
deriving (InviteMembers -> InviteMembers -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: InviteMembers -> InviteMembers -> Bool
$c/= :: InviteMembers -> InviteMembers -> Bool
== :: InviteMembers -> InviteMembers -> Bool
$c== :: InviteMembers -> InviteMembers -> Bool
Prelude.Eq, ReadPrec [InviteMembers]
ReadPrec InviteMembers
Int -> ReadS InviteMembers
ReadS [InviteMembers]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [InviteMembers]
$creadListPrec :: ReadPrec [InviteMembers]
readPrec :: ReadPrec InviteMembers
$creadPrec :: ReadPrec InviteMembers
readList :: ReadS [InviteMembers]
$creadList :: ReadS [InviteMembers]
readsPrec :: Int -> ReadS InviteMembers
$creadsPrec :: Int -> ReadS InviteMembers
Prelude.Read, Int -> InviteMembers -> ShowS
[InviteMembers] -> ShowS
InviteMembers -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [InviteMembers] -> ShowS
$cshowList :: [InviteMembers] -> ShowS
show :: InviteMembers -> String
$cshow :: InviteMembers -> String
showsPrec :: Int -> InviteMembers -> ShowS
$cshowsPrec :: Int -> InviteMembers -> ShowS
Prelude.Show, forall x. Rep InviteMembers x -> InviteMembers
forall x. InviteMembers -> Rep InviteMembers x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep InviteMembers x -> InviteMembers
$cfrom :: forall x. InviteMembers -> Rep InviteMembers x
Prelude.Generic)
newInviteMembers ::
Prelude.Text ->
Prelude.NonEmpty Prelude.Text ->
InviteMembers
newInviteMembers :: Text -> NonEmpty Text -> InviteMembers
newInviteMembers Text
pDetectorId_ NonEmpty Text
pAccountIds_ =
InviteMembers'
{ $sel:disableEmailNotification:InviteMembers' :: Maybe Bool
disableEmailNotification =
forall a. Maybe a
Prelude.Nothing,
$sel:message:InviteMembers' :: Maybe Text
message = forall a. Maybe a
Prelude.Nothing,
$sel:detectorId:InviteMembers' :: Text
detectorId = Text
pDetectorId_,
$sel:accountIds:InviteMembers' :: 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_
}
inviteMembers_disableEmailNotification :: Lens.Lens' InviteMembers (Prelude.Maybe Prelude.Bool)
inviteMembers_disableEmailNotification :: Lens' InviteMembers (Maybe Bool)
inviteMembers_disableEmailNotification = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InviteMembers' {Maybe Bool
disableEmailNotification :: Maybe Bool
$sel:disableEmailNotification:InviteMembers' :: InviteMembers -> Maybe Bool
disableEmailNotification} -> Maybe Bool
disableEmailNotification) (\s :: InviteMembers
s@InviteMembers' {} Maybe Bool
a -> InviteMembers
s {$sel:disableEmailNotification:InviteMembers' :: Maybe Bool
disableEmailNotification = Maybe Bool
a} :: InviteMembers)
inviteMembers_message :: Lens.Lens' InviteMembers (Prelude.Maybe Prelude.Text)
inviteMembers_message :: Lens' InviteMembers (Maybe Text)
inviteMembers_message = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InviteMembers' {Maybe Text
message :: Maybe Text
$sel:message:InviteMembers' :: InviteMembers -> Maybe Text
message} -> Maybe Text
message) (\s :: InviteMembers
s@InviteMembers' {} Maybe Text
a -> InviteMembers
s {$sel:message:InviteMembers' :: Maybe Text
message = Maybe Text
a} :: InviteMembers)
inviteMembers_detectorId :: Lens.Lens' InviteMembers Prelude.Text
inviteMembers_detectorId :: Lens' InviteMembers Text
inviteMembers_detectorId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InviteMembers' {Text
detectorId :: Text
$sel:detectorId:InviteMembers' :: InviteMembers -> Text
detectorId} -> Text
detectorId) (\s :: InviteMembers
s@InviteMembers' {} Text
a -> InviteMembers
s {$sel:detectorId:InviteMembers' :: Text
detectorId = Text
a} :: InviteMembers)
inviteMembers_accountIds :: Lens.Lens' InviteMembers (Prelude.NonEmpty Prelude.Text)
inviteMembers_accountIds :: Lens' InviteMembers (NonEmpty Text)
inviteMembers_accountIds = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InviteMembers' {NonEmpty Text
accountIds :: NonEmpty Text
$sel:accountIds:InviteMembers' :: InviteMembers -> NonEmpty Text
accountIds} -> NonEmpty Text
accountIds) (\s :: InviteMembers
s@InviteMembers' {} NonEmpty Text
a -> InviteMembers
s {$sel:accountIds:InviteMembers' :: NonEmpty Text
accountIds = NonEmpty Text
a} :: InviteMembers) 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 InviteMembers where
type
AWSResponse InviteMembers =
InviteMembersResponse
request :: (Service -> Service) -> InviteMembers -> Request InviteMembers
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 InviteMembers
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse InviteMembers)))
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] -> InviteMembersResponse
InviteMembersResponse'
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 InviteMembers where
hashWithSalt :: Int -> InviteMembers -> Int
hashWithSalt Int
_salt InviteMembers' {Maybe Bool
Maybe Text
NonEmpty Text
Text
accountIds :: NonEmpty Text
detectorId :: Text
message :: Maybe Text
disableEmailNotification :: Maybe Bool
$sel:accountIds:InviteMembers' :: InviteMembers -> NonEmpty Text
$sel:detectorId:InviteMembers' :: InviteMembers -> Text
$sel:message:InviteMembers' :: InviteMembers -> Maybe Text
$sel:disableEmailNotification:InviteMembers' :: InviteMembers -> Maybe Bool
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
disableEmailNotification
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
message
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 InviteMembers where
rnf :: InviteMembers -> ()
rnf InviteMembers' {Maybe Bool
Maybe Text
NonEmpty Text
Text
accountIds :: NonEmpty Text
detectorId :: Text
message :: Maybe Text
disableEmailNotification :: Maybe Bool
$sel:accountIds:InviteMembers' :: InviteMembers -> NonEmpty Text
$sel:detectorId:InviteMembers' :: InviteMembers -> Text
$sel:message:InviteMembers' :: InviteMembers -> Maybe Text
$sel:disableEmailNotification:InviteMembers' :: InviteMembers -> Maybe Bool
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
disableEmailNotification
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
message
seq :: forall a b. a -> b -> b
`Prelude.seq` 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 InviteMembers where
toHeaders :: InviteMembers -> 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 InviteMembers where
toJSON :: InviteMembers -> Value
toJSON InviteMembers' {Maybe Bool
Maybe Text
NonEmpty Text
Text
accountIds :: NonEmpty Text
detectorId :: Text
message :: Maybe Text
disableEmailNotification :: Maybe Bool
$sel:accountIds:InviteMembers' :: InviteMembers -> NonEmpty Text
$sel:detectorId:InviteMembers' :: InviteMembers -> Text
$sel:message:InviteMembers' :: InviteMembers -> Maybe Text
$sel:disableEmailNotification:InviteMembers' :: InviteMembers -> Maybe Bool
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"disableEmailNotification" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
disableEmailNotification,
(Key
"message" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
message,
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 InviteMembers where
toPath :: InviteMembers -> ByteString
toPath InviteMembers' {Maybe Bool
Maybe Text
NonEmpty Text
Text
accountIds :: NonEmpty Text
detectorId :: Text
message :: Maybe Text
disableEmailNotification :: Maybe Bool
$sel:accountIds:InviteMembers' :: InviteMembers -> NonEmpty Text
$sel:detectorId:InviteMembers' :: InviteMembers -> Text
$sel:message:InviteMembers' :: InviteMembers -> Maybe Text
$sel:disableEmailNotification:InviteMembers' :: InviteMembers -> Maybe Bool
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ ByteString
"/detector/",
forall a. ToByteString a => a -> ByteString
Data.toBS Text
detectorId,
ByteString
"/member/invite"
]
instance Data.ToQuery InviteMembers where
toQuery :: InviteMembers -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data InviteMembersResponse = InviteMembersResponse'
{
InviteMembersResponse -> Int
httpStatus :: Prelude.Int,
InviteMembersResponse -> [UnprocessedAccount]
unprocessedAccounts :: [UnprocessedAccount]
}
deriving (InviteMembersResponse -> InviteMembersResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: InviteMembersResponse -> InviteMembersResponse -> Bool
$c/= :: InviteMembersResponse -> InviteMembersResponse -> Bool
== :: InviteMembersResponse -> InviteMembersResponse -> Bool
$c== :: InviteMembersResponse -> InviteMembersResponse -> Bool
Prelude.Eq, ReadPrec [InviteMembersResponse]
ReadPrec InviteMembersResponse
Int -> ReadS InviteMembersResponse
ReadS [InviteMembersResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [InviteMembersResponse]
$creadListPrec :: ReadPrec [InviteMembersResponse]
readPrec :: ReadPrec InviteMembersResponse
$creadPrec :: ReadPrec InviteMembersResponse
readList :: ReadS [InviteMembersResponse]
$creadList :: ReadS [InviteMembersResponse]
readsPrec :: Int -> ReadS InviteMembersResponse
$creadsPrec :: Int -> ReadS InviteMembersResponse
Prelude.Read, Int -> InviteMembersResponse -> ShowS
[InviteMembersResponse] -> ShowS
InviteMembersResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [InviteMembersResponse] -> ShowS
$cshowList :: [InviteMembersResponse] -> ShowS
show :: InviteMembersResponse -> String
$cshow :: InviteMembersResponse -> String
showsPrec :: Int -> InviteMembersResponse -> ShowS
$cshowsPrec :: Int -> InviteMembersResponse -> ShowS
Prelude.Show, forall x. Rep InviteMembersResponse x -> InviteMembersResponse
forall x. InviteMembersResponse -> Rep InviteMembersResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep InviteMembersResponse x -> InviteMembersResponse
$cfrom :: forall x. InviteMembersResponse -> Rep InviteMembersResponse x
Prelude.Generic)
newInviteMembersResponse ::
Prelude.Int ->
InviteMembersResponse
newInviteMembersResponse :: Int -> InviteMembersResponse
newInviteMembersResponse Int
pHttpStatus_ =
InviteMembersResponse'
{ $sel:httpStatus:InviteMembersResponse' :: Int
httpStatus = Int
pHttpStatus_,
$sel:unprocessedAccounts:InviteMembersResponse' :: [UnprocessedAccount]
unprocessedAccounts = forall a. Monoid a => a
Prelude.mempty
}
inviteMembersResponse_httpStatus :: Lens.Lens' InviteMembersResponse Prelude.Int
inviteMembersResponse_httpStatus :: Lens' InviteMembersResponse Int
inviteMembersResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InviteMembersResponse' {Int
httpStatus :: Int
$sel:httpStatus:InviteMembersResponse' :: InviteMembersResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: InviteMembersResponse
s@InviteMembersResponse' {} Int
a -> InviteMembersResponse
s {$sel:httpStatus:InviteMembersResponse' :: Int
httpStatus = Int
a} :: InviteMembersResponse)
inviteMembersResponse_unprocessedAccounts :: Lens.Lens' InviteMembersResponse [UnprocessedAccount]
inviteMembersResponse_unprocessedAccounts :: Lens' InviteMembersResponse [UnprocessedAccount]
inviteMembersResponse_unprocessedAccounts = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InviteMembersResponse' {[UnprocessedAccount]
unprocessedAccounts :: [UnprocessedAccount]
$sel:unprocessedAccounts:InviteMembersResponse' :: InviteMembersResponse -> [UnprocessedAccount]
unprocessedAccounts} -> [UnprocessedAccount]
unprocessedAccounts) (\s :: InviteMembersResponse
s@InviteMembersResponse' {} [UnprocessedAccount]
a -> InviteMembersResponse
s {$sel:unprocessedAccounts:InviteMembersResponse' :: [UnprocessedAccount]
unprocessedAccounts = [UnprocessedAccount]
a} :: InviteMembersResponse) 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 InviteMembersResponse where
rnf :: InviteMembersResponse -> ()
rnf InviteMembersResponse' {Int
[UnprocessedAccount]
unprocessedAccounts :: [UnprocessedAccount]
httpStatus :: Int
$sel:unprocessedAccounts:InviteMembersResponse' :: InviteMembersResponse -> [UnprocessedAccount]
$sel:httpStatus:InviteMembersResponse' :: InviteMembersResponse -> 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