module Network.AWS.CognitoIdentityProvider.CreateUserPool
(
createUserPool
, CreateUserPool
, cupEmailVerificationMessage
, cupSmsAuthenticationMessage
, cupEmailVerificationSubject
, cupAliasAttributes
, cupSmsVerificationMessage
, cupMFAConfiguration
, cupLambdaConfig
, cupAutoVerifiedAttributes
, cupPolicies
, cupPoolName
, createUserPoolResponse
, CreateUserPoolResponse
, cuprsUserPool
, cuprsResponseStatus
) 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 CreateUserPool = CreateUserPool'
{ _cupEmailVerificationMessage :: !(Maybe Text)
, _cupSmsAuthenticationMessage :: !(Maybe Text)
, _cupEmailVerificationSubject :: !(Maybe Text)
, _cupAliasAttributes :: !(Maybe [AliasAttributeType])
, _cupSmsVerificationMessage :: !(Maybe Text)
, _cupMFAConfiguration :: !(Maybe UserPoolMFAType)
, _cupLambdaConfig :: !(Maybe LambdaConfigType)
, _cupAutoVerifiedAttributes :: !(Maybe [VerifiedAttributeType])
, _cupPolicies :: !(Maybe UserPoolPolicyType)
, _cupPoolName :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
createUserPool
:: Text
-> CreateUserPool
createUserPool pPoolName_ =
CreateUserPool'
{ _cupEmailVerificationMessage = Nothing
, _cupSmsAuthenticationMessage = Nothing
, _cupEmailVerificationSubject = Nothing
, _cupAliasAttributes = Nothing
, _cupSmsVerificationMessage = Nothing
, _cupMFAConfiguration = Nothing
, _cupLambdaConfig = Nothing
, _cupAutoVerifiedAttributes = Nothing
, _cupPolicies = Nothing
, _cupPoolName = pPoolName_
}
cupEmailVerificationMessage :: Lens' CreateUserPool (Maybe Text)
cupEmailVerificationMessage = lens _cupEmailVerificationMessage (\ s a -> s{_cupEmailVerificationMessage = a});
cupSmsAuthenticationMessage :: Lens' CreateUserPool (Maybe Text)
cupSmsAuthenticationMessage = lens _cupSmsAuthenticationMessage (\ s a -> s{_cupSmsAuthenticationMessage = a});
cupEmailVerificationSubject :: Lens' CreateUserPool (Maybe Text)
cupEmailVerificationSubject = lens _cupEmailVerificationSubject (\ s a -> s{_cupEmailVerificationSubject = a});
cupAliasAttributes :: Lens' CreateUserPool [AliasAttributeType]
cupAliasAttributes = lens _cupAliasAttributes (\ s a -> s{_cupAliasAttributes = a}) . _Default . _Coerce;
cupSmsVerificationMessage :: Lens' CreateUserPool (Maybe Text)
cupSmsVerificationMessage = lens _cupSmsVerificationMessage (\ s a -> s{_cupSmsVerificationMessage = a});
cupMFAConfiguration :: Lens' CreateUserPool (Maybe UserPoolMFAType)
cupMFAConfiguration = lens _cupMFAConfiguration (\ s a -> s{_cupMFAConfiguration = a});
cupLambdaConfig :: Lens' CreateUserPool (Maybe LambdaConfigType)
cupLambdaConfig = lens _cupLambdaConfig (\ s a -> s{_cupLambdaConfig = a});
cupAutoVerifiedAttributes :: Lens' CreateUserPool [VerifiedAttributeType]
cupAutoVerifiedAttributes = lens _cupAutoVerifiedAttributes (\ s a -> s{_cupAutoVerifiedAttributes = a}) . _Default . _Coerce;
cupPolicies :: Lens' CreateUserPool (Maybe UserPoolPolicyType)
cupPolicies = lens _cupPolicies (\ s a -> s{_cupPolicies = a});
cupPoolName :: Lens' CreateUserPool Text
cupPoolName = lens _cupPoolName (\ s a -> s{_cupPoolName = a});
instance AWSRequest CreateUserPool where
type Rs CreateUserPool = CreateUserPoolResponse
request = postJSON cognitoIdentityProvider
response
= receiveJSON
(\ s h x ->
CreateUserPoolResponse' <$>
(x .?> "UserPool") <*> (pure (fromEnum s)))
instance Hashable CreateUserPool
instance NFData CreateUserPool
instance ToHeaders CreateUserPool where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AWSCognitoIdentityProviderService.CreateUserPool"
:: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON CreateUserPool where
toJSON CreateUserPool'{..}
= object
(catMaybes
[("EmailVerificationMessage" .=) <$>
_cupEmailVerificationMessage,
("SmsAuthenticationMessage" .=) <$>
_cupSmsAuthenticationMessage,
("EmailVerificationSubject" .=) <$>
_cupEmailVerificationSubject,
("AliasAttributes" .=) <$> _cupAliasAttributes,
("SmsVerificationMessage" .=) <$>
_cupSmsVerificationMessage,
("MfaConfiguration" .=) <$> _cupMFAConfiguration,
("LambdaConfig" .=) <$> _cupLambdaConfig,
("AutoVerifiedAttributes" .=) <$>
_cupAutoVerifiedAttributes,
("Policies" .=) <$> _cupPolicies,
Just ("PoolName" .= _cupPoolName)])
instance ToPath CreateUserPool where
toPath = const "/"
instance ToQuery CreateUserPool where
toQuery = const mempty
data CreateUserPoolResponse = CreateUserPoolResponse'
{ _cuprsUserPool :: !(Maybe UserPoolType)
, _cuprsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
createUserPoolResponse
:: Int
-> CreateUserPoolResponse
createUserPoolResponse pResponseStatus_ =
CreateUserPoolResponse'
{ _cuprsUserPool = Nothing
, _cuprsResponseStatus = pResponseStatus_
}
cuprsUserPool :: Lens' CreateUserPoolResponse (Maybe UserPoolType)
cuprsUserPool = lens _cuprsUserPool (\ s a -> s{_cuprsUserPool = a});
cuprsResponseStatus :: Lens' CreateUserPoolResponse Int
cuprsResponseStatus = lens _cuprsResponseStatus (\ s a -> s{_cuprsResponseStatus = a});
instance NFData CreateUserPoolResponse