{-# 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.ConfirmDevice
(
confirmDevice
, ConfirmDevice
, cdDeviceSecretVerifierConfig
, cdDeviceName
, cdAccessToken
, cdDeviceKey
, confirmDeviceResponse
, ConfirmDeviceResponse
, cdrsUserConfirmationNecessary
, cdrsResponseStatus
) 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 ConfirmDevice = ConfirmDevice'
{ _cdDeviceSecretVerifierConfig :: !(Maybe DeviceSecretVerifierConfigType)
, _cdDeviceName :: !(Maybe Text)
, _cdAccessToken :: !(Sensitive Text)
, _cdDeviceKey :: !Text
} deriving (Eq, Show, Data, Typeable, Generic)
confirmDevice
:: Text
-> Text
-> ConfirmDevice
confirmDevice pAccessToken_ pDeviceKey_ =
ConfirmDevice'
{ _cdDeviceSecretVerifierConfig = Nothing
, _cdDeviceName = Nothing
, _cdAccessToken = _Sensitive # pAccessToken_
, _cdDeviceKey = pDeviceKey_
}
cdDeviceSecretVerifierConfig :: Lens' ConfirmDevice (Maybe DeviceSecretVerifierConfigType)
cdDeviceSecretVerifierConfig = lens _cdDeviceSecretVerifierConfig (\ s a -> s{_cdDeviceSecretVerifierConfig = a})
cdDeviceName :: Lens' ConfirmDevice (Maybe Text)
cdDeviceName = lens _cdDeviceName (\ s a -> s{_cdDeviceName = a})
cdAccessToken :: Lens' ConfirmDevice Text
cdAccessToken = lens _cdAccessToken (\ s a -> s{_cdAccessToken = a}) . _Sensitive
cdDeviceKey :: Lens' ConfirmDevice Text
cdDeviceKey = lens _cdDeviceKey (\ s a -> s{_cdDeviceKey = a})
instance AWSRequest ConfirmDevice where
type Rs ConfirmDevice = ConfirmDeviceResponse
request = postJSON cognitoIdentityProvider
response
= receiveJSON
(\ s h x ->
ConfirmDeviceResponse' <$>
(x .?> "UserConfirmationNecessary") <*>
(pure (fromEnum s)))
instance Hashable ConfirmDevice where
instance NFData ConfirmDevice where
instance ToHeaders ConfirmDevice where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AWSCognitoIdentityProviderService.ConfirmDevice" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON ConfirmDevice where
toJSON ConfirmDevice'{..}
= object
(catMaybes
[("DeviceSecretVerifierConfig" .=) <$>
_cdDeviceSecretVerifierConfig,
("DeviceName" .=) <$> _cdDeviceName,
Just ("AccessToken" .= _cdAccessToken),
Just ("DeviceKey" .= _cdDeviceKey)])
instance ToPath ConfirmDevice where
toPath = const "/"
instance ToQuery ConfirmDevice where
toQuery = const mempty
data ConfirmDeviceResponse = ConfirmDeviceResponse'
{ _cdrsUserConfirmationNecessary :: !(Maybe Bool)
, _cdrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
confirmDeviceResponse
:: Int
-> ConfirmDeviceResponse
confirmDeviceResponse pResponseStatus_ =
ConfirmDeviceResponse'
{ _cdrsUserConfirmationNecessary = Nothing
, _cdrsResponseStatus = pResponseStatus_
}
cdrsUserConfirmationNecessary :: Lens' ConfirmDeviceResponse (Maybe Bool)
cdrsUserConfirmationNecessary = lens _cdrsUserConfirmationNecessary (\ s a -> s{_cdrsUserConfirmationNecessary = a})
cdrsResponseStatus :: Lens' ConfirmDeviceResponse Int
cdrsResponseStatus = lens _cdrsResponseStatus (\ s a -> s{_cdrsResponseStatus = a})
instance NFData ConfirmDeviceResponse where