{-# 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.CognitoIdentityProvider.AdminSetUserSettings
(
adminSetUserSettings
, AdminSetUserSettings
, asusUserPoolId
, asusUsername
, asusMFAOptions
, adminSetUserSettingsResponse
, AdminSetUserSettingsResponse
, asusrsResponseStatus
) where
import Network.AWS.CognitoIdentityProvider.Types
import Network.AWS.CognitoIdentityProvider.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data AdminSetUserSettings = AdminSetUserSettings'
{ _asusUserPoolId :: !Text
, _asusUsername :: !(Sensitive Text)
, _asusMFAOptions :: ![MFAOptionType]
} deriving (Eq, Show, Data, Typeable, Generic)
adminSetUserSettings
:: Text
-> Text
-> AdminSetUserSettings
adminSetUserSettings pUserPoolId_ pUsername_ =
AdminSetUserSettings'
{ _asusUserPoolId = pUserPoolId_
, _asusUsername = _Sensitive # pUsername_
, _asusMFAOptions = mempty
}
asusUserPoolId :: Lens' AdminSetUserSettings Text
asusUserPoolId = lens _asusUserPoolId (\ s a -> s{_asusUserPoolId = a})
asusUsername :: Lens' AdminSetUserSettings Text
asusUsername = lens _asusUsername (\ s a -> s{_asusUsername = a}) . _Sensitive
asusMFAOptions :: Lens' AdminSetUserSettings [MFAOptionType]
asusMFAOptions = lens _asusMFAOptions (\ s a -> s{_asusMFAOptions = a}) . _Coerce
instance AWSRequest AdminSetUserSettings where
type Rs AdminSetUserSettings =
AdminSetUserSettingsResponse
request = postJSON cognitoIdentityProvider
response
= receiveEmpty
(\ s h x ->
AdminSetUserSettingsResponse' <$>
(pure (fromEnum s)))
instance Hashable AdminSetUserSettings where
instance NFData AdminSetUserSettings where
instance ToHeaders AdminSetUserSettings where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AWSCognitoIdentityProviderService.AdminSetUserSettings"
:: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON AdminSetUserSettings where
toJSON AdminSetUserSettings'{..}
= object
(catMaybes
[Just ("UserPoolId" .= _asusUserPoolId),
Just ("Username" .= _asusUsername),
Just ("MFAOptions" .= _asusMFAOptions)])
instance ToPath AdminSetUserSettings where
toPath = const "/"
instance ToQuery AdminSetUserSettings where
toQuery = const mempty
newtype AdminSetUserSettingsResponse = AdminSetUserSettingsResponse'
{ _asusrsResponseStatus :: Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
adminSetUserSettingsResponse
:: Int
-> AdminSetUserSettingsResponse
adminSetUserSettingsResponse pResponseStatus_ =
AdminSetUserSettingsResponse' {_asusrsResponseStatus = pResponseStatus_}
asusrsResponseStatus :: Lens' AdminSetUserSettingsResponse Int
asusrsResponseStatus = lens _asusrsResponseStatus (\ s a -> s{_asusrsResponseStatus = a})
instance NFData AdminSetUserSettingsResponse where