{-# 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.AlexaBusiness.CreateRoom
(
CreateRoom (..),
newCreateRoom,
createRoom_clientRequestToken,
createRoom_description,
createRoom_profileArn,
createRoom_providerCalendarId,
createRoom_tags,
createRoom_roomName,
CreateRoomResponse (..),
newCreateRoomResponse,
createRoomResponse_roomArn,
createRoomResponse_httpStatus,
)
where
import Amazonka.AlexaBusiness.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 CreateRoom = CreateRoom'
{
CreateRoom -> Maybe Text
clientRequestToken :: Prelude.Maybe Prelude.Text,
CreateRoom -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
CreateRoom -> Maybe Text
profileArn :: Prelude.Maybe Prelude.Text,
CreateRoom -> Maybe Text
providerCalendarId :: Prelude.Maybe Prelude.Text,
CreateRoom -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
CreateRoom -> Text
roomName :: Prelude.Text
}
deriving (CreateRoom -> CreateRoom -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateRoom -> CreateRoom -> Bool
$c/= :: CreateRoom -> CreateRoom -> Bool
== :: CreateRoom -> CreateRoom -> Bool
$c== :: CreateRoom -> CreateRoom -> Bool
Prelude.Eq, ReadPrec [CreateRoom]
ReadPrec CreateRoom
Int -> ReadS CreateRoom
ReadS [CreateRoom]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateRoom]
$creadListPrec :: ReadPrec [CreateRoom]
readPrec :: ReadPrec CreateRoom
$creadPrec :: ReadPrec CreateRoom
readList :: ReadS [CreateRoom]
$creadList :: ReadS [CreateRoom]
readsPrec :: Int -> ReadS CreateRoom
$creadsPrec :: Int -> ReadS CreateRoom
Prelude.Read, Int -> CreateRoom -> ShowS
[CreateRoom] -> ShowS
CreateRoom -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateRoom] -> ShowS
$cshowList :: [CreateRoom] -> ShowS
show :: CreateRoom -> String
$cshow :: CreateRoom -> String
showsPrec :: Int -> CreateRoom -> ShowS
$cshowsPrec :: Int -> CreateRoom -> ShowS
Prelude.Show, forall x. Rep CreateRoom x -> CreateRoom
forall x. CreateRoom -> Rep CreateRoom x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateRoom x -> CreateRoom
$cfrom :: forall x. CreateRoom -> Rep CreateRoom x
Prelude.Generic)
newCreateRoom ::
Prelude.Text ->
CreateRoom
newCreateRoom :: Text -> CreateRoom
newCreateRoom Text
pRoomName_ =
CreateRoom'
{ $sel:clientRequestToken:CreateRoom' :: Maybe Text
clientRequestToken = forall a. Maybe a
Prelude.Nothing,
$sel:description:CreateRoom' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
$sel:profileArn:CreateRoom' :: Maybe Text
profileArn = forall a. Maybe a
Prelude.Nothing,
$sel:providerCalendarId:CreateRoom' :: Maybe Text
providerCalendarId = forall a. Maybe a
Prelude.Nothing,
$sel:tags:CreateRoom' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing,
$sel:roomName:CreateRoom' :: Text
roomName = Text
pRoomName_
}
createRoom_clientRequestToken :: Lens.Lens' CreateRoom (Prelude.Maybe Prelude.Text)
createRoom_clientRequestToken :: Lens' CreateRoom (Maybe Text)
createRoom_clientRequestToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateRoom' {Maybe Text
clientRequestToken :: Maybe Text
$sel:clientRequestToken:CreateRoom' :: CreateRoom -> Maybe Text
clientRequestToken} -> Maybe Text
clientRequestToken) (\s :: CreateRoom
s@CreateRoom' {} Maybe Text
a -> CreateRoom
s {$sel:clientRequestToken:CreateRoom' :: Maybe Text
clientRequestToken = Maybe Text
a} :: CreateRoom)
createRoom_description :: Lens.Lens' CreateRoom (Prelude.Maybe Prelude.Text)
createRoom_description :: Lens' CreateRoom (Maybe Text)
createRoom_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateRoom' {Maybe Text
description :: Maybe Text
$sel:description:CreateRoom' :: CreateRoom -> Maybe Text
description} -> Maybe Text
description) (\s :: CreateRoom
s@CreateRoom' {} Maybe Text
a -> CreateRoom
s {$sel:description:CreateRoom' :: Maybe Text
description = Maybe Text
a} :: CreateRoom)
createRoom_profileArn :: Lens.Lens' CreateRoom (Prelude.Maybe Prelude.Text)
createRoom_profileArn :: Lens' CreateRoom (Maybe Text)
createRoom_profileArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateRoom' {Maybe Text
profileArn :: Maybe Text
$sel:profileArn:CreateRoom' :: CreateRoom -> Maybe Text
profileArn} -> Maybe Text
profileArn) (\s :: CreateRoom
s@CreateRoom' {} Maybe Text
a -> CreateRoom
s {$sel:profileArn:CreateRoom' :: Maybe Text
profileArn = Maybe Text
a} :: CreateRoom)
createRoom_providerCalendarId :: Lens.Lens' CreateRoom (Prelude.Maybe Prelude.Text)
createRoom_providerCalendarId :: Lens' CreateRoom (Maybe Text)
createRoom_providerCalendarId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateRoom' {Maybe Text
providerCalendarId :: Maybe Text
$sel:providerCalendarId:CreateRoom' :: CreateRoom -> Maybe Text
providerCalendarId} -> Maybe Text
providerCalendarId) (\s :: CreateRoom
s@CreateRoom' {} Maybe Text
a -> CreateRoom
s {$sel:providerCalendarId:CreateRoom' :: Maybe Text
providerCalendarId = Maybe Text
a} :: CreateRoom)
createRoom_tags :: Lens.Lens' CreateRoom (Prelude.Maybe [Tag])
createRoom_tags :: Lens' CreateRoom (Maybe [Tag])
createRoom_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateRoom' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:CreateRoom' :: CreateRoom -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: CreateRoom
s@CreateRoom' {} Maybe [Tag]
a -> CreateRoom
s {$sel:tags:CreateRoom' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: CreateRoom) 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
createRoom_roomName :: Lens.Lens' CreateRoom Prelude.Text
createRoom_roomName :: Lens' CreateRoom Text
createRoom_roomName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateRoom' {Text
roomName :: Text
$sel:roomName:CreateRoom' :: CreateRoom -> Text
roomName} -> Text
roomName) (\s :: CreateRoom
s@CreateRoom' {} Text
a -> CreateRoom
s {$sel:roomName:CreateRoom' :: Text
roomName = Text
a} :: CreateRoom)
instance Core.AWSRequest CreateRoom where
type AWSResponse CreateRoom = CreateRoomResponse
request :: (Service -> Service) -> CreateRoom -> Request CreateRoom
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 CreateRoom
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse CreateRoom)))
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 -> CreateRoomResponse
CreateRoomResponse'
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
"RoomArn")
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 CreateRoom where
hashWithSalt :: Int -> CreateRoom -> Int
hashWithSalt Int
_salt CreateRoom' {Maybe [Tag]
Maybe Text
Text
roomName :: Text
tags :: Maybe [Tag]
providerCalendarId :: Maybe Text
profileArn :: Maybe Text
description :: Maybe Text
clientRequestToken :: Maybe Text
$sel:roomName:CreateRoom' :: CreateRoom -> Text
$sel:tags:CreateRoom' :: CreateRoom -> Maybe [Tag]
$sel:providerCalendarId:CreateRoom' :: CreateRoom -> Maybe Text
$sel:profileArn:CreateRoom' :: CreateRoom -> Maybe Text
$sel:description:CreateRoom' :: CreateRoom -> Maybe Text
$sel:clientRequestToken:CreateRoom' :: CreateRoom -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
clientRequestToken
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
profileArn
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
providerCalendarId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Tag]
tags
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
roomName
instance Prelude.NFData CreateRoom where
rnf :: CreateRoom -> ()
rnf CreateRoom' {Maybe [Tag]
Maybe Text
Text
roomName :: Text
tags :: Maybe [Tag]
providerCalendarId :: Maybe Text
profileArn :: Maybe Text
description :: Maybe Text
clientRequestToken :: Maybe Text
$sel:roomName:CreateRoom' :: CreateRoom -> Text
$sel:tags:CreateRoom' :: CreateRoom -> Maybe [Tag]
$sel:providerCalendarId:CreateRoom' :: CreateRoom -> Maybe Text
$sel:profileArn:CreateRoom' :: CreateRoom -> Maybe Text
$sel:description:CreateRoom' :: CreateRoom -> Maybe Text
$sel:clientRequestToken:CreateRoom' :: CreateRoom -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
clientRequestToken
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
description
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
profileArn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
providerCalendarId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Tag]
tags
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
roomName
instance Data.ToHeaders CreateRoom where
toHeaders :: CreateRoom -> 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
"AlexaForBusiness.CreateRoom" ::
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 CreateRoom where
toJSON :: CreateRoom -> Value
toJSON CreateRoom' {Maybe [Tag]
Maybe Text
Text
roomName :: Text
tags :: Maybe [Tag]
providerCalendarId :: Maybe Text
profileArn :: Maybe Text
description :: Maybe Text
clientRequestToken :: Maybe Text
$sel:roomName:CreateRoom' :: CreateRoom -> Text
$sel:tags:CreateRoom' :: CreateRoom -> Maybe [Tag]
$sel:providerCalendarId:CreateRoom' :: CreateRoom -> Maybe Text
$sel:profileArn:CreateRoom' :: CreateRoom -> Maybe Text
$sel:description:CreateRoom' :: CreateRoom -> Maybe Text
$sel:clientRequestToken:CreateRoom' :: CreateRoom -> Maybe Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"ClientRequestToken" 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
clientRequestToken,
(Key
"Description" 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
description,
(Key
"ProfileArn" 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
profileArn,
(Key
"ProviderCalendarId" 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
providerCalendarId,
(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 [Tag]
tags,
forall a. a -> Maybe a
Prelude.Just (Key
"RoomName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
roomName)
]
)
instance Data.ToPath CreateRoom where
toPath :: CreateRoom -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery CreateRoom where
toQuery :: CreateRoom -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreateRoomResponse = CreateRoomResponse'
{
CreateRoomResponse -> Maybe Text
roomArn :: Prelude.Maybe Prelude.Text,
CreateRoomResponse -> Int
httpStatus :: Prelude.Int
}
deriving (CreateRoomResponse -> CreateRoomResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateRoomResponse -> CreateRoomResponse -> Bool
$c/= :: CreateRoomResponse -> CreateRoomResponse -> Bool
== :: CreateRoomResponse -> CreateRoomResponse -> Bool
$c== :: CreateRoomResponse -> CreateRoomResponse -> Bool
Prelude.Eq, ReadPrec [CreateRoomResponse]
ReadPrec CreateRoomResponse
Int -> ReadS CreateRoomResponse
ReadS [CreateRoomResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateRoomResponse]
$creadListPrec :: ReadPrec [CreateRoomResponse]
readPrec :: ReadPrec CreateRoomResponse
$creadPrec :: ReadPrec CreateRoomResponse
readList :: ReadS [CreateRoomResponse]
$creadList :: ReadS [CreateRoomResponse]
readsPrec :: Int -> ReadS CreateRoomResponse
$creadsPrec :: Int -> ReadS CreateRoomResponse
Prelude.Read, Int -> CreateRoomResponse -> ShowS
[CreateRoomResponse] -> ShowS
CreateRoomResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateRoomResponse] -> ShowS
$cshowList :: [CreateRoomResponse] -> ShowS
show :: CreateRoomResponse -> String
$cshow :: CreateRoomResponse -> String
showsPrec :: Int -> CreateRoomResponse -> ShowS
$cshowsPrec :: Int -> CreateRoomResponse -> ShowS
Prelude.Show, forall x. Rep CreateRoomResponse x -> CreateRoomResponse
forall x. CreateRoomResponse -> Rep CreateRoomResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateRoomResponse x -> CreateRoomResponse
$cfrom :: forall x. CreateRoomResponse -> Rep CreateRoomResponse x
Prelude.Generic)
newCreateRoomResponse ::
Prelude.Int ->
CreateRoomResponse
newCreateRoomResponse :: Int -> CreateRoomResponse
newCreateRoomResponse Int
pHttpStatus_ =
CreateRoomResponse'
{ $sel:roomArn:CreateRoomResponse' :: Maybe Text
roomArn = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:CreateRoomResponse' :: Int
httpStatus = Int
pHttpStatus_
}
createRoomResponse_roomArn :: Lens.Lens' CreateRoomResponse (Prelude.Maybe Prelude.Text)
createRoomResponse_roomArn :: Lens' CreateRoomResponse (Maybe Text)
createRoomResponse_roomArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateRoomResponse' {Maybe Text
roomArn :: Maybe Text
$sel:roomArn:CreateRoomResponse' :: CreateRoomResponse -> Maybe Text
roomArn} -> Maybe Text
roomArn) (\s :: CreateRoomResponse
s@CreateRoomResponse' {} Maybe Text
a -> CreateRoomResponse
s {$sel:roomArn:CreateRoomResponse' :: Maybe Text
roomArn = Maybe Text
a} :: CreateRoomResponse)
createRoomResponse_httpStatus :: Lens.Lens' CreateRoomResponse Prelude.Int
createRoomResponse_httpStatus :: Lens' CreateRoomResponse Int
createRoomResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateRoomResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateRoomResponse' :: CreateRoomResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateRoomResponse
s@CreateRoomResponse' {} Int
a -> CreateRoomResponse
s {$sel:httpStatus:CreateRoomResponse' :: Int
httpStatus = Int
a} :: CreateRoomResponse)
instance Prelude.NFData CreateRoomResponse where
rnf :: CreateRoomResponse -> ()
rnf CreateRoomResponse' {Int
Maybe Text
httpStatus :: Int
roomArn :: Maybe Text
$sel:httpStatus:CreateRoomResponse' :: CreateRoomResponse -> Int
$sel:roomArn:CreateRoomResponse' :: CreateRoomResponse -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
roomArn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus