amazonka-cognito-idp-1.6.0: gen/Network/AWS/CognitoIdentityProvider/UpdateResourceServer.hs
{-# 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 #-}
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- |
-- Module : Network.AWS.CognitoIdentityProvider.UpdateResourceServer
-- Copyright : (c) 2013-2018 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Updates the name and scopes of resource server. All other fields are read-only.
--
--
module Network.AWS.CognitoIdentityProvider.UpdateResourceServer
(
-- * Creating a Request
updateResourceServer
, UpdateResourceServer
-- * Request Lenses
, ursScopes
, ursUserPoolId
, ursIdentifier
, ursName
-- * Destructuring the Response
, updateResourceServerResponse
, UpdateResourceServerResponse
-- * Response Lenses
, ursrsResponseStatus
, ursrsResourceServer
) 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
-- | /See:/ 'updateResourceServer' smart constructor.
data UpdateResourceServer = UpdateResourceServer'
{ _ursScopes :: !(Maybe [ResourceServerScopeType])
, _ursUserPoolId :: !Text
, _ursIdentifier :: !Text
, _ursName :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
-- | Creates a value of 'UpdateResourceServer' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'ursScopes' - The scope values to be set for the resource server.
--
-- * 'ursUserPoolId' - The user pool ID for the user pool.
--
-- * 'ursIdentifier' - The identifier for the resource server.
--
-- * 'ursName' - The name of the resource server.
updateResourceServer
:: Text -- ^ 'ursUserPoolId'
-> Text -- ^ 'ursIdentifier'
-> Text -- ^ 'ursName'
-> UpdateResourceServer
updateResourceServer pUserPoolId_ pIdentifier_ pName_ =
UpdateResourceServer'
{ _ursScopes = Nothing
, _ursUserPoolId = pUserPoolId_
, _ursIdentifier = pIdentifier_
, _ursName = pName_
}
-- | The scope values to be set for the resource server.
ursScopes :: Lens' UpdateResourceServer [ResourceServerScopeType]
ursScopes = lens _ursScopes (\ s a -> s{_ursScopes = a}) . _Default . _Coerce
-- | The user pool ID for the user pool.
ursUserPoolId :: Lens' UpdateResourceServer Text
ursUserPoolId = lens _ursUserPoolId (\ s a -> s{_ursUserPoolId = a})
-- | The identifier for the resource server.
ursIdentifier :: Lens' UpdateResourceServer Text
ursIdentifier = lens _ursIdentifier (\ s a -> s{_ursIdentifier = a})
-- | The name of the resource server.
ursName :: Lens' UpdateResourceServer Text
ursName = lens _ursName (\ s a -> s{_ursName = a})
instance AWSRequest UpdateResourceServer where
type Rs UpdateResourceServer =
UpdateResourceServerResponse
request = postJSON cognitoIdentityProvider
response
= receiveJSON
(\ s h x ->
UpdateResourceServerResponse' <$>
(pure (fromEnum s)) <*> (x .:> "ResourceServer"))
instance Hashable UpdateResourceServer where
instance NFData UpdateResourceServer where
instance ToHeaders UpdateResourceServer where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AWSCognitoIdentityProviderService.UpdateResourceServer"
:: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON UpdateResourceServer where
toJSON UpdateResourceServer'{..}
= object
(catMaybes
[("Scopes" .=) <$> _ursScopes,
Just ("UserPoolId" .= _ursUserPoolId),
Just ("Identifier" .= _ursIdentifier),
Just ("Name" .= _ursName)])
instance ToPath UpdateResourceServer where
toPath = const "/"
instance ToQuery UpdateResourceServer where
toQuery = const mempty
-- | /See:/ 'updateResourceServerResponse' smart constructor.
data UpdateResourceServerResponse = UpdateResourceServerResponse'
{ _ursrsResponseStatus :: !Int
, _ursrsResourceServer :: !ResourceServerType
} deriving (Eq, Read, Show, Data, Typeable, Generic)
-- | Creates a value of 'UpdateResourceServerResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'ursrsResponseStatus' - -- | The response status code.
--
-- * 'ursrsResourceServer' - The resource server.
updateResourceServerResponse
:: Int -- ^ 'ursrsResponseStatus'
-> ResourceServerType -- ^ 'ursrsResourceServer'
-> UpdateResourceServerResponse
updateResourceServerResponse pResponseStatus_ pResourceServer_ =
UpdateResourceServerResponse'
{ _ursrsResponseStatus = pResponseStatus_
, _ursrsResourceServer = pResourceServer_
}
-- | -- | The response status code.
ursrsResponseStatus :: Lens' UpdateResourceServerResponse Int
ursrsResponseStatus = lens _ursrsResponseStatus (\ s a -> s{_ursrsResponseStatus = a})
-- | The resource server.
ursrsResourceServer :: Lens' UpdateResourceServerResponse ResourceServerType
ursrsResourceServer = lens _ursrsResourceServer (\ s a -> s{_ursrsResourceServer = a})
instance NFData UpdateResourceServerResponse where