{-# 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.UpdateIdentityProvider
(
updateIdentityProvider
, UpdateIdentityProvider
, uipIdpIdentifiers
, uipAttributeMapping
, uipProviderDetails
, uipUserPoolId
, uipProviderName
, updateIdentityProviderResponse
, UpdateIdentityProviderResponse
, uiprsResponseStatus
, uiprsIdentityProvider
) 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 UpdateIdentityProvider = UpdateIdentityProvider'
{ _uipIdpIdentifiers :: !(Maybe [Text])
, _uipAttributeMapping :: !(Maybe (Map Text Text))
, _uipProviderDetails :: !(Maybe (Map Text Text))
, _uipUserPoolId :: !Text
, _uipProviderName :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
updateIdentityProvider
:: Text
-> Text
-> UpdateIdentityProvider
updateIdentityProvider pUserPoolId_ pProviderName_ =
UpdateIdentityProvider'
{ _uipIdpIdentifiers = Nothing
, _uipAttributeMapping = Nothing
, _uipProviderDetails = Nothing
, _uipUserPoolId = pUserPoolId_
, _uipProviderName = pProviderName_
}
uipIdpIdentifiers :: Lens' UpdateIdentityProvider [Text]
uipIdpIdentifiers = lens _uipIdpIdentifiers (\ s a -> s{_uipIdpIdentifiers = a}) . _Default . _Coerce
uipAttributeMapping :: Lens' UpdateIdentityProvider (HashMap Text Text)
uipAttributeMapping = lens _uipAttributeMapping (\ s a -> s{_uipAttributeMapping = a}) . _Default . _Map
uipProviderDetails :: Lens' UpdateIdentityProvider (HashMap Text Text)
uipProviderDetails = lens _uipProviderDetails (\ s a -> s{_uipProviderDetails = a}) . _Default . _Map
uipUserPoolId :: Lens' UpdateIdentityProvider Text
uipUserPoolId = lens _uipUserPoolId (\ s a -> s{_uipUserPoolId = a})
uipProviderName :: Lens' UpdateIdentityProvider Text
uipProviderName = lens _uipProviderName (\ s a -> s{_uipProviderName = a})
instance AWSRequest UpdateIdentityProvider where
type Rs UpdateIdentityProvider =
UpdateIdentityProviderResponse
request = postJSON cognitoIdentityProvider
response
= receiveJSON
(\ s h x ->
UpdateIdentityProviderResponse' <$>
(pure (fromEnum s)) <*> (x .:> "IdentityProvider"))
instance Hashable UpdateIdentityProvider where
instance NFData UpdateIdentityProvider where
instance ToHeaders UpdateIdentityProvider where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AWSCognitoIdentityProviderService.UpdateIdentityProvider"
:: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON UpdateIdentityProvider where
toJSON UpdateIdentityProvider'{..}
= object
(catMaybes
[("IdpIdentifiers" .=) <$> _uipIdpIdentifiers,
("AttributeMapping" .=) <$> _uipAttributeMapping,
("ProviderDetails" .=) <$> _uipProviderDetails,
Just ("UserPoolId" .= _uipUserPoolId),
Just ("ProviderName" .= _uipProviderName)])
instance ToPath UpdateIdentityProvider where
toPath = const "/"
instance ToQuery UpdateIdentityProvider where
toQuery = const mempty
data UpdateIdentityProviderResponse = UpdateIdentityProviderResponse'
{ _uiprsResponseStatus :: !Int
, _uiprsIdentityProvider :: !IdentityProviderType
} deriving (Eq, Read, Show, Data, Typeable, Generic)
updateIdentityProviderResponse
:: Int
-> IdentityProviderType
-> UpdateIdentityProviderResponse
updateIdentityProviderResponse pResponseStatus_ pIdentityProvider_ =
UpdateIdentityProviderResponse'
{ _uiprsResponseStatus = pResponseStatus_
, _uiprsIdentityProvider = pIdentityProvider_
}
uiprsResponseStatus :: Lens' UpdateIdentityProviderResponse Int
uiprsResponseStatus = lens _uiprsResponseStatus (\ s a -> s{_uiprsResponseStatus = a})
uiprsIdentityProvider :: Lens' UpdateIdentityProviderResponse IdentityProviderType
uiprsIdentityProvider = lens _uiprsIdentityProvider (\ s a -> s{_uiprsIdentityProvider = a})
instance NFData UpdateIdentityProviderResponse where