{-# 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.Chime.UpdateRoomMembership
(
UpdateRoomMembership (..),
newUpdateRoomMembership,
updateRoomMembership_role,
updateRoomMembership_accountId,
updateRoomMembership_roomId,
updateRoomMembership_memberId,
UpdateRoomMembershipResponse (..),
newUpdateRoomMembershipResponse,
updateRoomMembershipResponse_roomMembership,
updateRoomMembershipResponse_httpStatus,
)
where
import Amazonka.Chime.Types
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data UpdateRoomMembership = UpdateRoomMembership'
{
UpdateRoomMembership -> Maybe RoomMembershipRole
role' :: Prelude.Maybe RoomMembershipRole,
UpdateRoomMembership -> Text
accountId :: Prelude.Text,
UpdateRoomMembership -> Text
roomId :: Prelude.Text,
UpdateRoomMembership -> Text
memberId :: Prelude.Text
}
deriving (UpdateRoomMembership -> UpdateRoomMembership -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateRoomMembership -> UpdateRoomMembership -> Bool
$c/= :: UpdateRoomMembership -> UpdateRoomMembership -> Bool
== :: UpdateRoomMembership -> UpdateRoomMembership -> Bool
$c== :: UpdateRoomMembership -> UpdateRoomMembership -> Bool
Prelude.Eq, ReadPrec [UpdateRoomMembership]
ReadPrec UpdateRoomMembership
Int -> ReadS UpdateRoomMembership
ReadS [UpdateRoomMembership]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateRoomMembership]
$creadListPrec :: ReadPrec [UpdateRoomMembership]
readPrec :: ReadPrec UpdateRoomMembership
$creadPrec :: ReadPrec UpdateRoomMembership
readList :: ReadS [UpdateRoomMembership]
$creadList :: ReadS [UpdateRoomMembership]
readsPrec :: Int -> ReadS UpdateRoomMembership
$creadsPrec :: Int -> ReadS UpdateRoomMembership
Prelude.Read, Int -> UpdateRoomMembership -> ShowS
[UpdateRoomMembership] -> ShowS
UpdateRoomMembership -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateRoomMembership] -> ShowS
$cshowList :: [UpdateRoomMembership] -> ShowS
show :: UpdateRoomMembership -> String
$cshow :: UpdateRoomMembership -> String
showsPrec :: Int -> UpdateRoomMembership -> ShowS
$cshowsPrec :: Int -> UpdateRoomMembership -> ShowS
Prelude.Show, forall x. Rep UpdateRoomMembership x -> UpdateRoomMembership
forall x. UpdateRoomMembership -> Rep UpdateRoomMembership x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UpdateRoomMembership x -> UpdateRoomMembership
$cfrom :: forall x. UpdateRoomMembership -> Rep UpdateRoomMembership x
Prelude.Generic)
newUpdateRoomMembership ::
Prelude.Text ->
Prelude.Text ->
Prelude.Text ->
UpdateRoomMembership
newUpdateRoomMembership :: Text -> Text -> Text -> UpdateRoomMembership
newUpdateRoomMembership
Text
pAccountId_
Text
pRoomId_
Text
pMemberId_ =
UpdateRoomMembership'
{ $sel:role':UpdateRoomMembership' :: Maybe RoomMembershipRole
role' = forall a. Maybe a
Prelude.Nothing,
$sel:accountId:UpdateRoomMembership' :: Text
accountId = Text
pAccountId_,
$sel:roomId:UpdateRoomMembership' :: Text
roomId = Text
pRoomId_,
$sel:memberId:UpdateRoomMembership' :: Text
memberId = Text
pMemberId_
}
updateRoomMembership_role :: Lens.Lens' UpdateRoomMembership (Prelude.Maybe RoomMembershipRole)
updateRoomMembership_role :: Lens' UpdateRoomMembership (Maybe RoomMembershipRole)
updateRoomMembership_role = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateRoomMembership' {Maybe RoomMembershipRole
role' :: Maybe RoomMembershipRole
$sel:role':UpdateRoomMembership' :: UpdateRoomMembership -> Maybe RoomMembershipRole
role'} -> Maybe RoomMembershipRole
role') (\s :: UpdateRoomMembership
s@UpdateRoomMembership' {} Maybe RoomMembershipRole
a -> UpdateRoomMembership
s {$sel:role':UpdateRoomMembership' :: Maybe RoomMembershipRole
role' = Maybe RoomMembershipRole
a} :: UpdateRoomMembership)
updateRoomMembership_accountId :: Lens.Lens' UpdateRoomMembership Prelude.Text
updateRoomMembership_accountId :: Lens' UpdateRoomMembership Text
updateRoomMembership_accountId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateRoomMembership' {Text
accountId :: Text
$sel:accountId:UpdateRoomMembership' :: UpdateRoomMembership -> Text
accountId} -> Text
accountId) (\s :: UpdateRoomMembership
s@UpdateRoomMembership' {} Text
a -> UpdateRoomMembership
s {$sel:accountId:UpdateRoomMembership' :: Text
accountId = Text
a} :: UpdateRoomMembership)
updateRoomMembership_roomId :: Lens.Lens' UpdateRoomMembership Prelude.Text
updateRoomMembership_roomId :: Lens' UpdateRoomMembership Text
updateRoomMembership_roomId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateRoomMembership' {Text
roomId :: Text
$sel:roomId:UpdateRoomMembership' :: UpdateRoomMembership -> Text
roomId} -> Text
roomId) (\s :: UpdateRoomMembership
s@UpdateRoomMembership' {} Text
a -> UpdateRoomMembership
s {$sel:roomId:UpdateRoomMembership' :: Text
roomId = Text
a} :: UpdateRoomMembership)
updateRoomMembership_memberId :: Lens.Lens' UpdateRoomMembership Prelude.Text
updateRoomMembership_memberId :: Lens' UpdateRoomMembership Text
updateRoomMembership_memberId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateRoomMembership' {Text
memberId :: Text
$sel:memberId:UpdateRoomMembership' :: UpdateRoomMembership -> Text
memberId} -> Text
memberId) (\s :: UpdateRoomMembership
s@UpdateRoomMembership' {} Text
a -> UpdateRoomMembership
s {$sel:memberId:UpdateRoomMembership' :: Text
memberId = Text
a} :: UpdateRoomMembership)
instance Core.AWSRequest UpdateRoomMembership where
type
AWSResponse UpdateRoomMembership =
UpdateRoomMembershipResponse
request :: (Service -> Service)
-> UpdateRoomMembership -> Request UpdateRoomMembership
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 UpdateRoomMembership
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse UpdateRoomMembership)))
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 RoomMembership -> Int -> UpdateRoomMembershipResponse
UpdateRoomMembershipResponse'
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
"RoomMembership")
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 UpdateRoomMembership where
hashWithSalt :: Int -> UpdateRoomMembership -> Int
hashWithSalt Int
_salt UpdateRoomMembership' {Maybe RoomMembershipRole
Text
memberId :: Text
roomId :: Text
accountId :: Text
role' :: Maybe RoomMembershipRole
$sel:memberId:UpdateRoomMembership' :: UpdateRoomMembership -> Text
$sel:roomId:UpdateRoomMembership' :: UpdateRoomMembership -> Text
$sel:accountId:UpdateRoomMembership' :: UpdateRoomMembership -> Text
$sel:role':UpdateRoomMembership' :: UpdateRoomMembership -> Maybe RoomMembershipRole
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe RoomMembershipRole
role'
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
accountId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
roomId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
memberId
instance Prelude.NFData UpdateRoomMembership where
rnf :: UpdateRoomMembership -> ()
rnf UpdateRoomMembership' {Maybe RoomMembershipRole
Text
memberId :: Text
roomId :: Text
accountId :: Text
role' :: Maybe RoomMembershipRole
$sel:memberId:UpdateRoomMembership' :: UpdateRoomMembership -> Text
$sel:roomId:UpdateRoomMembership' :: UpdateRoomMembership -> Text
$sel:accountId:UpdateRoomMembership' :: UpdateRoomMembership -> Text
$sel:role':UpdateRoomMembership' :: UpdateRoomMembership -> Maybe RoomMembershipRole
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe RoomMembershipRole
role'
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
accountId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
roomId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
memberId
instance Data.ToHeaders UpdateRoomMembership where
toHeaders :: UpdateRoomMembership -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
instance Data.ToJSON UpdateRoomMembership where
toJSON :: UpdateRoomMembership -> Value
toJSON UpdateRoomMembership' {Maybe RoomMembershipRole
Text
memberId :: Text
roomId :: Text
accountId :: Text
role' :: Maybe RoomMembershipRole
$sel:memberId:UpdateRoomMembership' :: UpdateRoomMembership -> Text
$sel:roomId:UpdateRoomMembership' :: UpdateRoomMembership -> Text
$sel:accountId:UpdateRoomMembership' :: UpdateRoomMembership -> Text
$sel:role':UpdateRoomMembership' :: UpdateRoomMembership -> Maybe RoomMembershipRole
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[(Key
"Role" 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 RoomMembershipRole
role']
)
instance Data.ToPath UpdateRoomMembership where
toPath :: UpdateRoomMembership -> ByteString
toPath UpdateRoomMembership' {Maybe RoomMembershipRole
Text
memberId :: Text
roomId :: Text
accountId :: Text
role' :: Maybe RoomMembershipRole
$sel:memberId:UpdateRoomMembership' :: UpdateRoomMembership -> Text
$sel:roomId:UpdateRoomMembership' :: UpdateRoomMembership -> Text
$sel:accountId:UpdateRoomMembership' :: UpdateRoomMembership -> Text
$sel:role':UpdateRoomMembership' :: UpdateRoomMembership -> Maybe RoomMembershipRole
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ ByteString
"/accounts/",
forall a. ToByteString a => a -> ByteString
Data.toBS Text
accountId,
ByteString
"/rooms/",
forall a. ToByteString a => a -> ByteString
Data.toBS Text
roomId,
ByteString
"/memberships/",
forall a. ToByteString a => a -> ByteString
Data.toBS Text
memberId
]
instance Data.ToQuery UpdateRoomMembership where
toQuery :: UpdateRoomMembership -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data UpdateRoomMembershipResponse = UpdateRoomMembershipResponse'
{
UpdateRoomMembershipResponse -> Maybe RoomMembership
roomMembership :: Prelude.Maybe RoomMembership,
UpdateRoomMembershipResponse -> Int
httpStatus :: Prelude.Int
}
deriving (UpdateRoomMembershipResponse
-> UpdateRoomMembershipResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateRoomMembershipResponse
-> UpdateRoomMembershipResponse -> Bool
$c/= :: UpdateRoomMembershipResponse
-> UpdateRoomMembershipResponse -> Bool
== :: UpdateRoomMembershipResponse
-> UpdateRoomMembershipResponse -> Bool
$c== :: UpdateRoomMembershipResponse
-> UpdateRoomMembershipResponse -> Bool
Prelude.Eq, Int -> UpdateRoomMembershipResponse -> ShowS
[UpdateRoomMembershipResponse] -> ShowS
UpdateRoomMembershipResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateRoomMembershipResponse] -> ShowS
$cshowList :: [UpdateRoomMembershipResponse] -> ShowS
show :: UpdateRoomMembershipResponse -> String
$cshow :: UpdateRoomMembershipResponse -> String
showsPrec :: Int -> UpdateRoomMembershipResponse -> ShowS
$cshowsPrec :: Int -> UpdateRoomMembershipResponse -> ShowS
Prelude.Show, forall x.
Rep UpdateRoomMembershipResponse x -> UpdateRoomMembershipResponse
forall x.
UpdateRoomMembershipResponse -> Rep UpdateRoomMembershipResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateRoomMembershipResponse x -> UpdateRoomMembershipResponse
$cfrom :: forall x.
UpdateRoomMembershipResponse -> Rep UpdateRoomMembershipResponse x
Prelude.Generic)
newUpdateRoomMembershipResponse ::
Prelude.Int ->
UpdateRoomMembershipResponse
newUpdateRoomMembershipResponse :: Int -> UpdateRoomMembershipResponse
newUpdateRoomMembershipResponse Int
pHttpStatus_ =
UpdateRoomMembershipResponse'
{ $sel:roomMembership:UpdateRoomMembershipResponse' :: Maybe RoomMembership
roomMembership =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:UpdateRoomMembershipResponse' :: Int
httpStatus = Int
pHttpStatus_
}
updateRoomMembershipResponse_roomMembership :: Lens.Lens' UpdateRoomMembershipResponse (Prelude.Maybe RoomMembership)
updateRoomMembershipResponse_roomMembership :: Lens' UpdateRoomMembershipResponse (Maybe RoomMembership)
updateRoomMembershipResponse_roomMembership = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateRoomMembershipResponse' {Maybe RoomMembership
roomMembership :: Maybe RoomMembership
$sel:roomMembership:UpdateRoomMembershipResponse' :: UpdateRoomMembershipResponse -> Maybe RoomMembership
roomMembership} -> Maybe RoomMembership
roomMembership) (\s :: UpdateRoomMembershipResponse
s@UpdateRoomMembershipResponse' {} Maybe RoomMembership
a -> UpdateRoomMembershipResponse
s {$sel:roomMembership:UpdateRoomMembershipResponse' :: Maybe RoomMembership
roomMembership = Maybe RoomMembership
a} :: UpdateRoomMembershipResponse)
updateRoomMembershipResponse_httpStatus :: Lens.Lens' UpdateRoomMembershipResponse Prelude.Int
updateRoomMembershipResponse_httpStatus :: Lens' UpdateRoomMembershipResponse Int
updateRoomMembershipResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateRoomMembershipResponse' {Int
httpStatus :: Int
$sel:httpStatus:UpdateRoomMembershipResponse' :: UpdateRoomMembershipResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: UpdateRoomMembershipResponse
s@UpdateRoomMembershipResponse' {} Int
a -> UpdateRoomMembershipResponse
s {$sel:httpStatus:UpdateRoomMembershipResponse' :: Int
httpStatus = Int
a} :: UpdateRoomMembershipResponse)
instance Prelude.NFData UpdateRoomMembershipResponse where
rnf :: UpdateRoomMembershipResponse -> ()
rnf UpdateRoomMembershipResponse' {Int
Maybe RoomMembership
httpStatus :: Int
roomMembership :: Maybe RoomMembership
$sel:httpStatus:UpdateRoomMembershipResponse' :: UpdateRoomMembershipResponse -> Int
$sel:roomMembership:UpdateRoomMembershipResponse' :: UpdateRoomMembershipResponse -> Maybe RoomMembership
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe RoomMembership
roomMembership
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus