{-# 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.IdentityStore.CreateGroupMembership
(
CreateGroupMembership (..),
newCreateGroupMembership,
createGroupMembership_identityStoreId,
createGroupMembership_groupId,
createGroupMembership_memberId,
CreateGroupMembershipResponse (..),
newCreateGroupMembershipResponse,
createGroupMembershipResponse_httpStatus,
createGroupMembershipResponse_membershipId,
createGroupMembershipResponse_identityStoreId,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.IdentityStore.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data CreateGroupMembership = CreateGroupMembership'
{
CreateGroupMembership -> Text
identityStoreId :: Prelude.Text,
CreateGroupMembership -> Text
groupId :: Prelude.Text,
CreateGroupMembership -> MemberId
memberId :: MemberId
}
deriving (CreateGroupMembership -> CreateGroupMembership -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateGroupMembership -> CreateGroupMembership -> Bool
$c/= :: CreateGroupMembership -> CreateGroupMembership -> Bool
== :: CreateGroupMembership -> CreateGroupMembership -> Bool
$c== :: CreateGroupMembership -> CreateGroupMembership -> Bool
Prelude.Eq, ReadPrec [CreateGroupMembership]
ReadPrec CreateGroupMembership
Int -> ReadS CreateGroupMembership
ReadS [CreateGroupMembership]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateGroupMembership]
$creadListPrec :: ReadPrec [CreateGroupMembership]
readPrec :: ReadPrec CreateGroupMembership
$creadPrec :: ReadPrec CreateGroupMembership
readList :: ReadS [CreateGroupMembership]
$creadList :: ReadS [CreateGroupMembership]
readsPrec :: Int -> ReadS CreateGroupMembership
$creadsPrec :: Int -> ReadS CreateGroupMembership
Prelude.Read, Int -> CreateGroupMembership -> ShowS
[CreateGroupMembership] -> ShowS
CreateGroupMembership -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateGroupMembership] -> ShowS
$cshowList :: [CreateGroupMembership] -> ShowS
show :: CreateGroupMembership -> String
$cshow :: CreateGroupMembership -> String
showsPrec :: Int -> CreateGroupMembership -> ShowS
$cshowsPrec :: Int -> CreateGroupMembership -> ShowS
Prelude.Show, forall x. Rep CreateGroupMembership x -> CreateGroupMembership
forall x. CreateGroupMembership -> Rep CreateGroupMembership x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateGroupMembership x -> CreateGroupMembership
$cfrom :: forall x. CreateGroupMembership -> Rep CreateGroupMembership x
Prelude.Generic)
newCreateGroupMembership ::
Prelude.Text ->
Prelude.Text ->
MemberId ->
CreateGroupMembership
newCreateGroupMembership :: Text -> Text -> MemberId -> CreateGroupMembership
newCreateGroupMembership
Text
pIdentityStoreId_
Text
pGroupId_
MemberId
pMemberId_ =
CreateGroupMembership'
{ $sel:identityStoreId:CreateGroupMembership' :: Text
identityStoreId =
Text
pIdentityStoreId_,
$sel:groupId:CreateGroupMembership' :: Text
groupId = Text
pGroupId_,
$sel:memberId:CreateGroupMembership' :: MemberId
memberId = MemberId
pMemberId_
}
createGroupMembership_identityStoreId :: Lens.Lens' CreateGroupMembership Prelude.Text
createGroupMembership_identityStoreId :: Lens' CreateGroupMembership Text
createGroupMembership_identityStoreId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateGroupMembership' {Text
identityStoreId :: Text
$sel:identityStoreId:CreateGroupMembership' :: CreateGroupMembership -> Text
identityStoreId} -> Text
identityStoreId) (\s :: CreateGroupMembership
s@CreateGroupMembership' {} Text
a -> CreateGroupMembership
s {$sel:identityStoreId:CreateGroupMembership' :: Text
identityStoreId = Text
a} :: CreateGroupMembership)
createGroupMembership_groupId :: Lens.Lens' CreateGroupMembership Prelude.Text
createGroupMembership_groupId :: Lens' CreateGroupMembership Text
createGroupMembership_groupId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateGroupMembership' {Text
groupId :: Text
$sel:groupId:CreateGroupMembership' :: CreateGroupMembership -> Text
groupId} -> Text
groupId) (\s :: CreateGroupMembership
s@CreateGroupMembership' {} Text
a -> CreateGroupMembership
s {$sel:groupId:CreateGroupMembership' :: Text
groupId = Text
a} :: CreateGroupMembership)
createGroupMembership_memberId :: Lens.Lens' CreateGroupMembership MemberId
createGroupMembership_memberId :: Lens' CreateGroupMembership MemberId
createGroupMembership_memberId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateGroupMembership' {MemberId
memberId :: MemberId
$sel:memberId:CreateGroupMembership' :: CreateGroupMembership -> MemberId
memberId} -> MemberId
memberId) (\s :: CreateGroupMembership
s@CreateGroupMembership' {} MemberId
a -> CreateGroupMembership
s {$sel:memberId:CreateGroupMembership' :: MemberId
memberId = MemberId
a} :: CreateGroupMembership)
instance Core.AWSRequest CreateGroupMembership where
type
AWSResponse CreateGroupMembership =
CreateGroupMembershipResponse
request :: (Service -> Service)
-> CreateGroupMembership -> Request CreateGroupMembership
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 CreateGroupMembership
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse CreateGroupMembership)))
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 -> Text -> Text -> CreateGroupMembershipResponse
CreateGroupMembershipResponse'
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 a
Data..:> Key
"MembershipId")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"IdentityStoreId")
)
instance Prelude.Hashable CreateGroupMembership where
hashWithSalt :: Int -> CreateGroupMembership -> Int
hashWithSalt Int
_salt CreateGroupMembership' {Text
MemberId
memberId :: MemberId
groupId :: Text
identityStoreId :: Text
$sel:memberId:CreateGroupMembership' :: CreateGroupMembership -> MemberId
$sel:groupId:CreateGroupMembership' :: CreateGroupMembership -> Text
$sel:identityStoreId:CreateGroupMembership' :: CreateGroupMembership -> Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
identityStoreId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
groupId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` MemberId
memberId
instance Prelude.NFData CreateGroupMembership where
rnf :: CreateGroupMembership -> ()
rnf CreateGroupMembership' {Text
MemberId
memberId :: MemberId
groupId :: Text
identityStoreId :: Text
$sel:memberId:CreateGroupMembership' :: CreateGroupMembership -> MemberId
$sel:groupId:CreateGroupMembership' :: CreateGroupMembership -> Text
$sel:identityStoreId:CreateGroupMembership' :: CreateGroupMembership -> Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Text
identityStoreId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
groupId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf MemberId
memberId
instance Data.ToHeaders CreateGroupMembership where
toHeaders :: CreateGroupMembership -> ResponseHeaders
toHeaders =
forall a b. a -> b -> a
Prelude.const
( forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"X-Amz-Target"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"AWSIdentityStore.CreateGroupMembership" ::
Prelude.ByteString
),
HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON CreateGroupMembership where
toJSON :: CreateGroupMembership -> Value
toJSON CreateGroupMembership' {Text
MemberId
memberId :: MemberId
groupId :: Text
identityStoreId :: Text
$sel:memberId:CreateGroupMembership' :: CreateGroupMembership -> MemberId
$sel:groupId:CreateGroupMembership' :: CreateGroupMembership -> Text
$sel:identityStoreId:CreateGroupMembership' :: CreateGroupMembership -> Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ forall a. a -> Maybe a
Prelude.Just
(Key
"IdentityStoreId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
identityStoreId),
forall a. a -> Maybe a
Prelude.Just (Key
"GroupId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
groupId),
forall a. a -> Maybe a
Prelude.Just (Key
"MemberId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= MemberId
memberId)
]
)
instance Data.ToPath CreateGroupMembership where
toPath :: CreateGroupMembership -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery CreateGroupMembership where
toQuery :: CreateGroupMembership -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreateGroupMembershipResponse = CreateGroupMembershipResponse'
{
CreateGroupMembershipResponse -> Int
httpStatus :: Prelude.Int,
CreateGroupMembershipResponse -> Text
membershipId :: Prelude.Text,
CreateGroupMembershipResponse -> Text
identityStoreId :: Prelude.Text
}
deriving (CreateGroupMembershipResponse
-> CreateGroupMembershipResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateGroupMembershipResponse
-> CreateGroupMembershipResponse -> Bool
$c/= :: CreateGroupMembershipResponse
-> CreateGroupMembershipResponse -> Bool
== :: CreateGroupMembershipResponse
-> CreateGroupMembershipResponse -> Bool
$c== :: CreateGroupMembershipResponse
-> CreateGroupMembershipResponse -> Bool
Prelude.Eq, ReadPrec [CreateGroupMembershipResponse]
ReadPrec CreateGroupMembershipResponse
Int -> ReadS CreateGroupMembershipResponse
ReadS [CreateGroupMembershipResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateGroupMembershipResponse]
$creadListPrec :: ReadPrec [CreateGroupMembershipResponse]
readPrec :: ReadPrec CreateGroupMembershipResponse
$creadPrec :: ReadPrec CreateGroupMembershipResponse
readList :: ReadS [CreateGroupMembershipResponse]
$creadList :: ReadS [CreateGroupMembershipResponse]
readsPrec :: Int -> ReadS CreateGroupMembershipResponse
$creadsPrec :: Int -> ReadS CreateGroupMembershipResponse
Prelude.Read, Int -> CreateGroupMembershipResponse -> ShowS
[CreateGroupMembershipResponse] -> ShowS
CreateGroupMembershipResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateGroupMembershipResponse] -> ShowS
$cshowList :: [CreateGroupMembershipResponse] -> ShowS
show :: CreateGroupMembershipResponse -> String
$cshow :: CreateGroupMembershipResponse -> String
showsPrec :: Int -> CreateGroupMembershipResponse -> ShowS
$cshowsPrec :: Int -> CreateGroupMembershipResponse -> ShowS
Prelude.Show, forall x.
Rep CreateGroupMembershipResponse x
-> CreateGroupMembershipResponse
forall x.
CreateGroupMembershipResponse
-> Rep CreateGroupMembershipResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateGroupMembershipResponse x
-> CreateGroupMembershipResponse
$cfrom :: forall x.
CreateGroupMembershipResponse
-> Rep CreateGroupMembershipResponse x
Prelude.Generic)
newCreateGroupMembershipResponse ::
Prelude.Int ->
Prelude.Text ->
Prelude.Text ->
CreateGroupMembershipResponse
newCreateGroupMembershipResponse :: Int -> Text -> Text -> CreateGroupMembershipResponse
newCreateGroupMembershipResponse
Int
pHttpStatus_
Text
pMembershipId_
Text
pIdentityStoreId_ =
CreateGroupMembershipResponse'
{ $sel:httpStatus:CreateGroupMembershipResponse' :: Int
httpStatus =
Int
pHttpStatus_,
$sel:membershipId:CreateGroupMembershipResponse' :: Text
membershipId = Text
pMembershipId_,
$sel:identityStoreId:CreateGroupMembershipResponse' :: Text
identityStoreId = Text
pIdentityStoreId_
}
createGroupMembershipResponse_httpStatus :: Lens.Lens' CreateGroupMembershipResponse Prelude.Int
createGroupMembershipResponse_httpStatus :: Lens' CreateGroupMembershipResponse Int
createGroupMembershipResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateGroupMembershipResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateGroupMembershipResponse' :: CreateGroupMembershipResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateGroupMembershipResponse
s@CreateGroupMembershipResponse' {} Int
a -> CreateGroupMembershipResponse
s {$sel:httpStatus:CreateGroupMembershipResponse' :: Int
httpStatus = Int
a} :: CreateGroupMembershipResponse)
createGroupMembershipResponse_membershipId :: Lens.Lens' CreateGroupMembershipResponse Prelude.Text
createGroupMembershipResponse_membershipId :: Lens' CreateGroupMembershipResponse Text
createGroupMembershipResponse_membershipId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateGroupMembershipResponse' {Text
membershipId :: Text
$sel:membershipId:CreateGroupMembershipResponse' :: CreateGroupMembershipResponse -> Text
membershipId} -> Text
membershipId) (\s :: CreateGroupMembershipResponse
s@CreateGroupMembershipResponse' {} Text
a -> CreateGroupMembershipResponse
s {$sel:membershipId:CreateGroupMembershipResponse' :: Text
membershipId = Text
a} :: CreateGroupMembershipResponse)
createGroupMembershipResponse_identityStoreId :: Lens.Lens' CreateGroupMembershipResponse Prelude.Text
createGroupMembershipResponse_identityStoreId :: Lens' CreateGroupMembershipResponse Text
createGroupMembershipResponse_identityStoreId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateGroupMembershipResponse' {Text
identityStoreId :: Text
$sel:identityStoreId:CreateGroupMembershipResponse' :: CreateGroupMembershipResponse -> Text
identityStoreId} -> Text
identityStoreId) (\s :: CreateGroupMembershipResponse
s@CreateGroupMembershipResponse' {} Text
a -> CreateGroupMembershipResponse
s {$sel:identityStoreId:CreateGroupMembershipResponse' :: Text
identityStoreId = Text
a} :: CreateGroupMembershipResponse)
instance Prelude.NFData CreateGroupMembershipResponse where
rnf :: CreateGroupMembershipResponse -> ()
rnf CreateGroupMembershipResponse' {Int
Text
identityStoreId :: Text
membershipId :: Text
httpStatus :: Int
$sel:identityStoreId:CreateGroupMembershipResponse' :: CreateGroupMembershipResponse -> Text
$sel:membershipId:CreateGroupMembershipResponse' :: CreateGroupMembershipResponse -> Text
$sel:httpStatus:CreateGroupMembershipResponse' :: CreateGroupMembershipResponse -> 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 Text
membershipId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
identityStoreId