{-# 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.CreateAuthorizer
(
createAuthorizer
, CreateAuthorizer
, caStatus
, caAuthorizerName
, caAuthorizerFunctionARN
, caTokenKeyName
, caTokenSigningPublicKeys
, createAuthorizerResponse
, CreateAuthorizerResponse
, carsAuthorizerName
, carsAuthorizerARN
, carsResponseStatus
) 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 CreateAuthorizer = CreateAuthorizer'
{ _caStatus :: !(Maybe AuthorizerStatus)
, _caAuthorizerName :: !Text
, _caAuthorizerFunctionARN :: !Text
, _caTokenKeyName :: !Text
, _caTokenSigningPublicKeys :: !(Map Text Text)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createAuthorizer
:: Text
-> Text
-> Text
-> CreateAuthorizer
createAuthorizer pAuthorizerName_ pAuthorizerFunctionARN_ pTokenKeyName_ =
CreateAuthorizer'
{ _caStatus = Nothing
, _caAuthorizerName = pAuthorizerName_
, _caAuthorizerFunctionARN = pAuthorizerFunctionARN_
, _caTokenKeyName = pTokenKeyName_
, _caTokenSigningPublicKeys = mempty
}
caStatus :: Lens' CreateAuthorizer (Maybe AuthorizerStatus)
caStatus = lens _caStatus (\ s a -> s{_caStatus = a})
caAuthorizerName :: Lens' CreateAuthorizer Text
caAuthorizerName = lens _caAuthorizerName (\ s a -> s{_caAuthorizerName = a})
caAuthorizerFunctionARN :: Lens' CreateAuthorizer Text
caAuthorizerFunctionARN = lens _caAuthorizerFunctionARN (\ s a -> s{_caAuthorizerFunctionARN = a})
caTokenKeyName :: Lens' CreateAuthorizer Text
caTokenKeyName = lens _caTokenKeyName (\ s a -> s{_caTokenKeyName = a})
caTokenSigningPublicKeys :: Lens' CreateAuthorizer (HashMap Text Text)
caTokenSigningPublicKeys = lens _caTokenSigningPublicKeys (\ s a -> s{_caTokenSigningPublicKeys = a}) . _Map
instance AWSRequest CreateAuthorizer where
type Rs CreateAuthorizer = CreateAuthorizerResponse
request = postJSON ioT
response
= receiveJSON
(\ s h x ->
CreateAuthorizerResponse' <$>
(x .?> "authorizerName") <*> (x .?> "authorizerArn")
<*> (pure (fromEnum s)))
instance Hashable CreateAuthorizer where
instance NFData CreateAuthorizer where
instance ToHeaders CreateAuthorizer where
toHeaders = const mempty
instance ToJSON CreateAuthorizer where
toJSON CreateAuthorizer'{..}
= object
(catMaybes
[("status" .=) <$> _caStatus,
Just
("authorizerFunctionArn" .=
_caAuthorizerFunctionARN),
Just ("tokenKeyName" .= _caTokenKeyName),
Just
("tokenSigningPublicKeys" .=
_caTokenSigningPublicKeys)])
instance ToPath CreateAuthorizer where
toPath CreateAuthorizer'{..}
= mconcat ["/authorizer/", toBS _caAuthorizerName]
instance ToQuery CreateAuthorizer where
toQuery = const mempty
data CreateAuthorizerResponse = CreateAuthorizerResponse'
{ _carsAuthorizerName :: !(Maybe Text)
, _carsAuthorizerARN :: !(Maybe Text)
, _carsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createAuthorizerResponse
:: Int
-> CreateAuthorizerResponse
createAuthorizerResponse pResponseStatus_ =
CreateAuthorizerResponse'
{ _carsAuthorizerName = Nothing
, _carsAuthorizerARN = Nothing
, _carsResponseStatus = pResponseStatus_
}
carsAuthorizerName :: Lens' CreateAuthorizerResponse (Maybe Text)
carsAuthorizerName = lens _carsAuthorizerName (\ s a -> s{_carsAuthorizerName = a})
carsAuthorizerARN :: Lens' CreateAuthorizerResponse (Maybe Text)
carsAuthorizerARN = lens _carsAuthorizerARN (\ s a -> s{_carsAuthorizerARN = a})
carsResponseStatus :: Lens' CreateAuthorizerResponse Int
carsResponseStatus = lens _carsResponseStatus (\ s a -> s{_carsResponseStatus = a})
instance NFData CreateAuthorizerResponse where