{-# 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.IoT.UpdateAuthorizer
(
updateAuthorizer
, UpdateAuthorizer
, uaStatus
, uaAuthorizerFunctionARN
, uaTokenSigningPublicKeys
, uaTokenKeyName
, uaAuthorizerName
, updateAuthorizerResponse
, UpdateAuthorizerResponse
, uarsAuthorizerName
, uarsAuthorizerARN
, uarsResponseStatus
) where
import Network.AWS.IoT.Types
import Network.AWS.IoT.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data UpdateAuthorizer = UpdateAuthorizer'
{ _uaStatus :: !(Maybe AuthorizerStatus)
, _uaAuthorizerFunctionARN :: !(Maybe Text)
, _uaTokenSigningPublicKeys :: !(Maybe (Map Text Text))
, _uaTokenKeyName :: !(Maybe Text)
, _uaAuthorizerName :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
updateAuthorizer
:: Text
-> UpdateAuthorizer
updateAuthorizer pAuthorizerName_ =
UpdateAuthorizer'
{ _uaStatus = Nothing
, _uaAuthorizerFunctionARN = Nothing
, _uaTokenSigningPublicKeys = Nothing
, _uaTokenKeyName = Nothing
, _uaAuthorizerName = pAuthorizerName_
}
uaStatus :: Lens' UpdateAuthorizer (Maybe AuthorizerStatus)
uaStatus = lens _uaStatus (\ s a -> s{_uaStatus = a})
uaAuthorizerFunctionARN :: Lens' UpdateAuthorizer (Maybe Text)
uaAuthorizerFunctionARN = lens _uaAuthorizerFunctionARN (\ s a -> s{_uaAuthorizerFunctionARN = a})
uaTokenSigningPublicKeys :: Lens' UpdateAuthorizer (HashMap Text Text)
uaTokenSigningPublicKeys = lens _uaTokenSigningPublicKeys (\ s a -> s{_uaTokenSigningPublicKeys = a}) . _Default . _Map
uaTokenKeyName :: Lens' UpdateAuthorizer (Maybe Text)
uaTokenKeyName = lens _uaTokenKeyName (\ s a -> s{_uaTokenKeyName = a})
uaAuthorizerName :: Lens' UpdateAuthorizer Text
uaAuthorizerName = lens _uaAuthorizerName (\ s a -> s{_uaAuthorizerName = a})
instance AWSRequest UpdateAuthorizer where
type Rs UpdateAuthorizer = UpdateAuthorizerResponse
request = putJSON ioT
response
= receiveJSON
(\ s h x ->
UpdateAuthorizerResponse' <$>
(x .?> "authorizerName") <*> (x .?> "authorizerArn")
<*> (pure (fromEnum s)))
instance Hashable UpdateAuthorizer where
instance NFData UpdateAuthorizer where
instance ToHeaders UpdateAuthorizer where
toHeaders = const mempty
instance ToJSON UpdateAuthorizer where
toJSON UpdateAuthorizer'{..}
= object
(catMaybes
[("status" .=) <$> _uaStatus,
("authorizerFunctionArn" .=) <$>
_uaAuthorizerFunctionARN,
("tokenSigningPublicKeys" .=) <$>
_uaTokenSigningPublicKeys,
("tokenKeyName" .=) <$> _uaTokenKeyName])
instance ToPath UpdateAuthorizer where
toPath UpdateAuthorizer'{..}
= mconcat ["/authorizer/", toBS _uaAuthorizerName]
instance ToQuery UpdateAuthorizer where
toQuery = const mempty
data UpdateAuthorizerResponse = UpdateAuthorizerResponse'
{ _uarsAuthorizerName :: !(Maybe Text)
, _uarsAuthorizerARN :: !(Maybe Text)
, _uarsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
updateAuthorizerResponse
:: Int
-> UpdateAuthorizerResponse
updateAuthorizerResponse pResponseStatus_ =
UpdateAuthorizerResponse'
{ _uarsAuthorizerName = Nothing
, _uarsAuthorizerARN = Nothing
, _uarsResponseStatus = pResponseStatus_
}
uarsAuthorizerName :: Lens' UpdateAuthorizerResponse (Maybe Text)
uarsAuthorizerName = lens _uarsAuthorizerName (\ s a -> s{_uarsAuthorizerName = a})
uarsAuthorizerARN :: Lens' UpdateAuthorizerResponse (Maybe Text)
uarsAuthorizerARN = lens _uarsAuthorizerARN (\ s a -> s{_uarsAuthorizerARN = a})
uarsResponseStatus :: Lens' UpdateAuthorizerResponse Int
uarsResponseStatus = lens _uarsResponseStatus (\ s a -> s{_uarsResponseStatus = a})
instance NFData UpdateAuthorizerResponse where