{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Network.AWS.AlexaBusiness.CreateProfile
(
createProfile
, CreateProfile
, cpSetupModeDisabled
, cpPSTNEnabled
, cpClientRequestToken
, cpMaxVolumeLimit
, cpProfileName
, cpTimezone
, cpAddress
, cpDistanceUnit
, cpTemperatureUnit
, cpWakeWord
, createProfileResponse
, CreateProfileResponse
, cprsProfileARN
, cprsResponseStatus
) where
import Network.AWS.AlexaBusiness.Types
import Network.AWS.AlexaBusiness.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data CreateProfile = CreateProfile'
{ _cpSetupModeDisabled :: !(Maybe Bool)
, _cpPSTNEnabled :: !(Maybe Bool)
, _cpClientRequestToken :: !(Maybe Text)
, _cpMaxVolumeLimit :: !(Maybe Int)
, _cpProfileName :: !Text
, _cpTimezone :: !Text
, _cpAddress :: !Text
, _cpDistanceUnit :: !DistanceUnit
, _cpTemperatureUnit :: !TemperatureUnit
, _cpWakeWord :: !WakeWord
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createProfile
:: Text
-> Text
-> Text
-> DistanceUnit
-> TemperatureUnit
-> WakeWord
-> CreateProfile
createProfile pProfileName_ pTimezone_ pAddress_ pDistanceUnit_ pTemperatureUnit_ pWakeWord_ =
CreateProfile'
{ _cpSetupModeDisabled = Nothing
, _cpPSTNEnabled = Nothing
, _cpClientRequestToken = Nothing
, _cpMaxVolumeLimit = Nothing
, _cpProfileName = pProfileName_
, _cpTimezone = pTimezone_
, _cpAddress = pAddress_
, _cpDistanceUnit = pDistanceUnit_
, _cpTemperatureUnit = pTemperatureUnit_
, _cpWakeWord = pWakeWord_
}
cpSetupModeDisabled :: Lens' CreateProfile (Maybe Bool)
cpSetupModeDisabled = lens _cpSetupModeDisabled (\ s a -> s{_cpSetupModeDisabled = a})
cpPSTNEnabled :: Lens' CreateProfile (Maybe Bool)
cpPSTNEnabled = lens _cpPSTNEnabled (\ s a -> s{_cpPSTNEnabled = a})
cpClientRequestToken :: Lens' CreateProfile (Maybe Text)
cpClientRequestToken = lens _cpClientRequestToken (\ s a -> s{_cpClientRequestToken = a})
cpMaxVolumeLimit :: Lens' CreateProfile (Maybe Int)
cpMaxVolumeLimit = lens _cpMaxVolumeLimit (\ s a -> s{_cpMaxVolumeLimit = a})
cpProfileName :: Lens' CreateProfile Text
cpProfileName = lens _cpProfileName (\ s a -> s{_cpProfileName = a})
cpTimezone :: Lens' CreateProfile Text
cpTimezone = lens _cpTimezone (\ s a -> s{_cpTimezone = a})
cpAddress :: Lens' CreateProfile Text
cpAddress = lens _cpAddress (\ s a -> s{_cpAddress = a})
cpDistanceUnit :: Lens' CreateProfile DistanceUnit
cpDistanceUnit = lens _cpDistanceUnit (\ s a -> s{_cpDistanceUnit = a})
cpTemperatureUnit :: Lens' CreateProfile TemperatureUnit
cpTemperatureUnit = lens _cpTemperatureUnit (\ s a -> s{_cpTemperatureUnit = a})
cpWakeWord :: Lens' CreateProfile WakeWord
cpWakeWord = lens _cpWakeWord (\ s a -> s{_cpWakeWord = a})
instance AWSRequest CreateProfile where
type Rs CreateProfile = CreateProfileResponse
request = postJSON alexaBusiness
response
= receiveJSON
(\ s h x ->
CreateProfileResponse' <$>
(x .?> "ProfileArn") <*> (pure (fromEnum s)))
instance Hashable CreateProfile where
instance NFData CreateProfile where
instance ToHeaders CreateProfile where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AlexaForBusiness.CreateProfile" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON CreateProfile where
toJSON CreateProfile'{..}
= object
(catMaybes
[("SetupModeDisabled" .=) <$> _cpSetupModeDisabled,
("PSTNEnabled" .=) <$> _cpPSTNEnabled,
("ClientRequestToken" .=) <$> _cpClientRequestToken,
("MaxVolumeLimit" .=) <$> _cpMaxVolumeLimit,
Just ("ProfileName" .= _cpProfileName),
Just ("Timezone" .= _cpTimezone),
Just ("Address" .= _cpAddress),
Just ("DistanceUnit" .= _cpDistanceUnit),
Just ("TemperatureUnit" .= _cpTemperatureUnit),
Just ("WakeWord" .= _cpWakeWord)])
instance ToPath CreateProfile where
toPath = const "/"
instance ToQuery CreateProfile where
toQuery = const mempty
data CreateProfileResponse = CreateProfileResponse'
{ _cprsProfileARN :: !(Maybe Text)
, _cprsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createProfileResponse
:: Int
-> CreateProfileResponse
createProfileResponse pResponseStatus_ =
CreateProfileResponse'
{_cprsProfileARN = Nothing, _cprsResponseStatus = pResponseStatus_}
cprsProfileARN :: Lens' CreateProfileResponse (Maybe Text)
cprsProfileARN = lens _cprsProfileARN (\ s a -> s{_cprsProfileARN = a})
cprsResponseStatus :: Lens' CreateProfileResponse Int
cprsResponseStatus = lens _cprsResponseStatus (\ s a -> s{_cprsResponseStatus = a})
instance NFData CreateProfileResponse where