{-# 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.MacieV2.CreateMember
(
CreateMember (..),
newCreateMember,
createMember_tags,
createMember_account,
CreateMemberResponse (..),
newCreateMemberResponse,
createMemberResponse_arn,
createMemberResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.MacieV2.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data CreateMember = CreateMember'
{
CreateMember -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
CreateMember -> AccountDetail
account :: AccountDetail
}
deriving (CreateMember -> CreateMember -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateMember -> CreateMember -> Bool
$c/= :: CreateMember -> CreateMember -> Bool
== :: CreateMember -> CreateMember -> Bool
$c== :: CreateMember -> CreateMember -> Bool
Prelude.Eq, ReadPrec [CreateMember]
ReadPrec CreateMember
Int -> ReadS CreateMember
ReadS [CreateMember]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateMember]
$creadListPrec :: ReadPrec [CreateMember]
readPrec :: ReadPrec CreateMember
$creadPrec :: ReadPrec CreateMember
readList :: ReadS [CreateMember]
$creadList :: ReadS [CreateMember]
readsPrec :: Int -> ReadS CreateMember
$creadsPrec :: Int -> ReadS CreateMember
Prelude.Read, Int -> CreateMember -> ShowS
[CreateMember] -> ShowS
CreateMember -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateMember] -> ShowS
$cshowList :: [CreateMember] -> ShowS
show :: CreateMember -> String
$cshow :: CreateMember -> String
showsPrec :: Int -> CreateMember -> ShowS
$cshowsPrec :: Int -> CreateMember -> ShowS
Prelude.Show, forall x. Rep CreateMember x -> CreateMember
forall x. CreateMember -> Rep CreateMember x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateMember x -> CreateMember
$cfrom :: forall x. CreateMember -> Rep CreateMember x
Prelude.Generic)
newCreateMember ::
AccountDetail ->
CreateMember
newCreateMember :: AccountDetail -> CreateMember
newCreateMember AccountDetail
pAccount_ =
CreateMember'
{ $sel:tags:CreateMember' :: Maybe (HashMap Text Text)
tags = forall a. Maybe a
Prelude.Nothing,
$sel:account:CreateMember' :: AccountDetail
account = AccountDetail
pAccount_
}
createMember_tags :: Lens.Lens' CreateMember (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
createMember_tags :: Lens' CreateMember (Maybe (HashMap Text Text))
createMember_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateMember' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:CreateMember' :: CreateMember -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: CreateMember
s@CreateMember' {} Maybe (HashMap Text Text)
a -> CreateMember
s {$sel:tags:CreateMember' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: CreateMember) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
createMember_account :: Lens.Lens' CreateMember AccountDetail
createMember_account :: Lens' CreateMember AccountDetail
createMember_account = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateMember' {AccountDetail
account :: AccountDetail
$sel:account:CreateMember' :: CreateMember -> AccountDetail
account} -> AccountDetail
account) (\s :: CreateMember
s@CreateMember' {} AccountDetail
a -> CreateMember
s {$sel:account:CreateMember' :: AccountDetail
account = AccountDetail
a} :: CreateMember)
instance Core.AWSRequest CreateMember where
type AWSResponse CreateMember = CreateMemberResponse
request :: (Service -> Service) -> CreateMember -> Request CreateMember
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 CreateMember
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse CreateMember)))
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 ->
Maybe Text -> Int -> CreateMemberResponse
CreateMemberResponse'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"arn")
forall (f :: * -> *) a b. Applicative f => 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))
)
instance Prelude.Hashable CreateMember where
hashWithSalt :: Int -> CreateMember -> Int
hashWithSalt Int
_salt CreateMember' {Maybe (HashMap Text Text)
AccountDetail
account :: AccountDetail
tags :: Maybe (HashMap Text Text)
$sel:account:CreateMember' :: CreateMember -> AccountDetail
$sel:tags:CreateMember' :: CreateMember -> Maybe (HashMap Text Text)
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (HashMap Text Text)
tags
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` AccountDetail
account
instance Prelude.NFData CreateMember where
rnf :: CreateMember -> ()
rnf CreateMember' {Maybe (HashMap Text Text)
AccountDetail
account :: AccountDetail
tags :: Maybe (HashMap Text Text)
$sel:account:CreateMember' :: CreateMember -> AccountDetail
$sel:tags:CreateMember' :: CreateMember -> Maybe (HashMap Text Text)
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text Text)
tags seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf AccountDetail
account
instance Data.ToHeaders CreateMember where
toHeaders :: CreateMember -> 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 CreateMember where
toJSON :: CreateMember -> Value
toJSON CreateMember' {Maybe (HashMap Text Text)
AccountDetail
account :: AccountDetail
tags :: Maybe (HashMap Text Text)
$sel:account:CreateMember' :: CreateMember -> AccountDetail
$sel:tags:CreateMember' :: CreateMember -> Maybe (HashMap Text Text)
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"tags" 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 (HashMap Text Text)
tags,
forall a. a -> Maybe a
Prelude.Just (Key
"account" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= AccountDetail
account)
]
)
instance Data.ToPath CreateMember where
toPath :: CreateMember -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/members"
instance Data.ToQuery CreateMember where
toQuery :: CreateMember -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreateMemberResponse = CreateMemberResponse'
{
CreateMemberResponse -> Maybe Text
arn :: Prelude.Maybe Prelude.Text,
CreateMemberResponse -> Int
httpStatus :: Prelude.Int
}
deriving (CreateMemberResponse -> CreateMemberResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateMemberResponse -> CreateMemberResponse -> Bool
$c/= :: CreateMemberResponse -> CreateMemberResponse -> Bool
== :: CreateMemberResponse -> CreateMemberResponse -> Bool
$c== :: CreateMemberResponse -> CreateMemberResponse -> Bool
Prelude.Eq, ReadPrec [CreateMemberResponse]
ReadPrec CreateMemberResponse
Int -> ReadS CreateMemberResponse
ReadS [CreateMemberResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateMemberResponse]
$creadListPrec :: ReadPrec [CreateMemberResponse]
readPrec :: ReadPrec CreateMemberResponse
$creadPrec :: ReadPrec CreateMemberResponse
readList :: ReadS [CreateMemberResponse]
$creadList :: ReadS [CreateMemberResponse]
readsPrec :: Int -> ReadS CreateMemberResponse
$creadsPrec :: Int -> ReadS CreateMemberResponse
Prelude.Read, Int -> CreateMemberResponse -> ShowS
[CreateMemberResponse] -> ShowS
CreateMemberResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateMemberResponse] -> ShowS
$cshowList :: [CreateMemberResponse] -> ShowS
show :: CreateMemberResponse -> String
$cshow :: CreateMemberResponse -> String
showsPrec :: Int -> CreateMemberResponse -> ShowS
$cshowsPrec :: Int -> CreateMemberResponse -> ShowS
Prelude.Show, forall x. Rep CreateMemberResponse x -> CreateMemberResponse
forall x. CreateMemberResponse -> Rep CreateMemberResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateMemberResponse x -> CreateMemberResponse
$cfrom :: forall x. CreateMemberResponse -> Rep CreateMemberResponse x
Prelude.Generic)
newCreateMemberResponse ::
Prelude.Int ->
CreateMemberResponse
newCreateMemberResponse :: Int -> CreateMemberResponse
newCreateMemberResponse Int
pHttpStatus_ =
CreateMemberResponse'
{ $sel:arn:CreateMemberResponse' :: Maybe Text
arn = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:CreateMemberResponse' :: Int
httpStatus = Int
pHttpStatus_
}
createMemberResponse_arn :: Lens.Lens' CreateMemberResponse (Prelude.Maybe Prelude.Text)
createMemberResponse_arn :: Lens' CreateMemberResponse (Maybe Text)
createMemberResponse_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateMemberResponse' {Maybe Text
arn :: Maybe Text
$sel:arn:CreateMemberResponse' :: CreateMemberResponse -> Maybe Text
arn} -> Maybe Text
arn) (\s :: CreateMemberResponse
s@CreateMemberResponse' {} Maybe Text
a -> CreateMemberResponse
s {$sel:arn:CreateMemberResponse' :: Maybe Text
arn = Maybe Text
a} :: CreateMemberResponse)
createMemberResponse_httpStatus :: Lens.Lens' CreateMemberResponse Prelude.Int
createMemberResponse_httpStatus :: Lens' CreateMemberResponse Int
createMemberResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateMemberResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateMemberResponse' :: CreateMemberResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateMemberResponse
s@CreateMemberResponse' {} Int
a -> CreateMemberResponse
s {$sel:httpStatus:CreateMemberResponse' :: Int
httpStatus = Int
a} :: CreateMemberResponse)
instance Prelude.NFData CreateMemberResponse where
rnf :: CreateMemberResponse -> ()
rnf CreateMemberResponse' {Int
Maybe Text
httpStatus :: Int
arn :: Maybe Text
$sel:httpStatus:CreateMemberResponse' :: CreateMemberResponse -> Int
$sel:arn:CreateMemberResponse' :: CreateMemberResponse -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
arn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus