{-# 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 #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.AlexaBusiness.CreateRoom
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Creates a room with the specified details.
module Amazonka.AlexaBusiness.CreateRoom
  ( -- * Creating a Request
    CreateRoom (..),
    newCreateRoom,

    -- * Request Lenses
    createRoom_clientRequestToken,
    createRoom_description,
    createRoom_profileArn,
    createRoom_providerCalendarId,
    createRoom_tags,
    createRoom_roomName,

    -- * Destructuring the Response
    CreateRoomResponse (..),
    newCreateRoomResponse,

    -- * Response Lenses
    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

-- | /See:/ 'newCreateRoom' smart constructor.
data CreateRoom = CreateRoom'
  { -- | A unique, user-specified identifier for this request that ensures
    -- idempotency.
    CreateRoom -> Maybe Text
clientRequestToken :: Prelude.Maybe Prelude.Text,
    -- | The description for the room.
    CreateRoom -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | The profile ARN for the room. This is required.
    CreateRoom -> Maybe Text
profileArn :: Prelude.Maybe Prelude.Text,
    -- | The calendar ARN for the room.
    CreateRoom -> Maybe Text
providerCalendarId :: Prelude.Maybe Prelude.Text,
    -- | The tags for the room.
    CreateRoom -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
    -- | The name for the room.
    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)

-- |
-- Create a value of 'CreateRoom' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'clientRequestToken', 'createRoom_clientRequestToken' - A unique, user-specified identifier for this request that ensures
-- idempotency.
--
-- 'description', 'createRoom_description' - The description for the room.
--
-- 'profileArn', 'createRoom_profileArn' - The profile ARN for the room. This is required.
--
-- 'providerCalendarId', 'createRoom_providerCalendarId' - The calendar ARN for the room.
--
-- 'tags', 'createRoom_tags' - The tags for the room.
--
-- 'roomName', 'createRoom_roomName' - The name for the room.
newCreateRoom ::
  -- | 'roomName'
  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_
    }

-- | A unique, user-specified identifier for this request that ensures
-- idempotency.
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)

-- | The description for the room.
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)

-- | The profile ARN for the room. This is required.
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)

-- | The calendar ARN for the room.
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)

-- | The tags for the room.
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

-- | The name for the room.
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

-- | /See:/ 'newCreateRoomResponse' smart constructor.
data CreateRoomResponse = CreateRoomResponse'
  { -- | The ARN of the newly created room in the response.
    CreateRoomResponse -> Maybe Text
roomArn :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    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)

-- |
-- Create a value of 'CreateRoomResponse' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'roomArn', 'createRoomResponse_roomArn' - The ARN of the newly created room in the response.
--
-- 'httpStatus', 'createRoomResponse_httpStatus' - The response's http status code.
newCreateRoomResponse ::
  -- | 'httpStatus'
  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_
    }

-- | The ARN of the newly created room in the response.
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)

-- | The response's http status code.
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