{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-} module HipChat.Types.Rooms.CreateRoomRequest where import Data.Aeson import Data.Aeson.Casing import Data.Text (Text) import GHC.Generics data RoomPrivacy = Public | Private instance ToJSON RoomPrivacy where toJSON Public = String "public" toJSON Private = String "private" data CreateRoomRequest = CreateRoomRequest { crrName :: Text , crrPrivacy :: Maybe RoomPrivacy , crrDelegateAdminVisibility :: Maybe Bool , crrTopic :: Maybe Text , crrOwnerUserId :: Maybe (Either Text Int) , crrGuestAccess :: Maybe Bool } deriving (Generic) instance ToJSON CreateRoomRequest where toJSON = genericToJSON $ aesonPrefix snakeCase