amazonka-apigateway-1.4.1: gen/Network/AWS/APIGateway/TestInvokeAuthorizer.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.APIGateway.TestInvokeAuthorizer
-- Copyright : (c) 2013-2016 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Simulate the execution of an < Authorizer> in your < RestApi> with
-- headers, parameters, and an incoming request body.
module Network.AWS.APIGateway.TestInvokeAuthorizer
(
-- * Creating a Request
testInvokeAuthorizer
, TestInvokeAuthorizer
-- * Request Lenses
, tiaPathWithQueryString
, tiaBody
, tiaAdditionalContext
, tiaStageVariables
, tiaHeaders
, tiaRestAPIId
, tiaAuthorizerId
-- * Destructuring the Response
, testInvokeAuthorizerResponse
, TestInvokeAuthorizerResponse
-- * Response Lenses
, tiarsLog
, tiarsPrincipalId
, tiarsLatency
, tiarsAuthorization
, tiarsClientStatus
, tiarsPolicy
, tiarsResponseStatus
) where
import Network.AWS.APIGateway.Types
import Network.AWS.APIGateway.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
-- | Make a request to simulate the execution of an < Authorizer>.
--
-- /See:/ 'testInvokeAuthorizer' smart constructor.
data TestInvokeAuthorizer = TestInvokeAuthorizer'
{ _tiaPathWithQueryString :: !(Maybe Text)
, _tiaBody :: !(Maybe Text)
, _tiaAdditionalContext :: !(Maybe (Map Text Text))
, _tiaStageVariables :: !(Maybe (Map Text Text))
, _tiaHeaders :: !(Maybe (Map Text Text))
, _tiaRestAPIId :: !Text
, _tiaAuthorizerId :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'TestInvokeAuthorizer' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'tiaPathWithQueryString'
--
-- * 'tiaBody'
--
-- * 'tiaAdditionalContext'
--
-- * 'tiaStageVariables'
--
-- * 'tiaHeaders'
--
-- * 'tiaRestAPIId'
--
-- * 'tiaAuthorizerId'
testInvokeAuthorizer
:: Text -- ^ 'tiaRestAPIId'
-> Text -- ^ 'tiaAuthorizerId'
-> TestInvokeAuthorizer
testInvokeAuthorizer pRestAPIId_ pAuthorizerId_ =
TestInvokeAuthorizer'
{ _tiaPathWithQueryString = Nothing
, _tiaBody = Nothing
, _tiaAdditionalContext = Nothing
, _tiaStageVariables = Nothing
, _tiaHeaders = Nothing
, _tiaRestAPIId = pRestAPIId_
, _tiaAuthorizerId = pAuthorizerId_
}
-- | [Optional] The URI path, including query string, of the simulated
-- invocation request. Use this to specify path parameters and query string
-- parameters.
tiaPathWithQueryString :: Lens' TestInvokeAuthorizer (Maybe Text)
tiaPathWithQueryString = lens _tiaPathWithQueryString (\ s a -> s{_tiaPathWithQueryString = a});
-- | [Optional] The simulated request body of an incoming invocation request.
tiaBody :: Lens' TestInvokeAuthorizer (Maybe Text)
tiaBody = lens _tiaBody (\ s a -> s{_tiaBody = a});
-- | [Optional] A key-value map of additional context variables.
tiaAdditionalContext :: Lens' TestInvokeAuthorizer (HashMap Text Text)
tiaAdditionalContext = lens _tiaAdditionalContext (\ s a -> s{_tiaAdditionalContext = a}) . _Default . _Map;
-- | A key-value map of stage variables to simulate an invocation on a
-- deployed < Stage>.
tiaStageVariables :: Lens' TestInvokeAuthorizer (HashMap Text Text)
tiaStageVariables = lens _tiaStageVariables (\ s a -> s{_tiaStageVariables = a}) . _Default . _Map;
-- | [Required] A key-value map of headers to simulate an incoming invocation
-- request. This is where the incoming authorization token, or identity
-- source, should be specified.
tiaHeaders :: Lens' TestInvokeAuthorizer (HashMap Text Text)
tiaHeaders = lens _tiaHeaders (\ s a -> s{_tiaHeaders = a}) . _Default . _Map;
-- | Specifies a test invoke authorizer request\'s < RestApi> identifier.
tiaRestAPIId :: Lens' TestInvokeAuthorizer Text
tiaRestAPIId = lens _tiaRestAPIId (\ s a -> s{_tiaRestAPIId = a});
-- | Specifies a test invoke authorizer request\'s < Authorizer> ID.
tiaAuthorizerId :: Lens' TestInvokeAuthorizer Text
tiaAuthorizerId = lens _tiaAuthorizerId (\ s a -> s{_tiaAuthorizerId = a});
instance AWSRequest TestInvokeAuthorizer where
type Rs TestInvokeAuthorizer =
TestInvokeAuthorizerResponse
request = postJSON apiGateway
response
= receiveJSON
(\ s h x ->
TestInvokeAuthorizerResponse' <$>
(x .?> "log") <*> (x .?> "principalId") <*>
(x .?> "latency")
<*> (x .?> "authorization" .!@ mempty)
<*> (x .?> "clientStatus")
<*> (x .?> "policy")
<*> (pure (fromEnum s)))
instance Hashable TestInvokeAuthorizer
instance NFData TestInvokeAuthorizer
instance ToHeaders TestInvokeAuthorizer where
toHeaders
= const
(mconcat
["Accept" =# ("application/json" :: ByteString)])
instance ToJSON TestInvokeAuthorizer where
toJSON TestInvokeAuthorizer'{..}
= object
(catMaybes
[("pathWithQueryString" .=) <$>
_tiaPathWithQueryString,
("body" .=) <$> _tiaBody,
("additionalContext" .=) <$> _tiaAdditionalContext,
("stageVariables" .=) <$> _tiaStageVariables,
("headers" .=) <$> _tiaHeaders])
instance ToPath TestInvokeAuthorizer where
toPath TestInvokeAuthorizer'{..}
= mconcat
["/restapis/", toBS _tiaRestAPIId, "/authorizers/",
toBS _tiaAuthorizerId]
instance ToQuery TestInvokeAuthorizer where
toQuery = const mempty
-- | Represents the response of the test invoke request in for a custom
-- < Authorizer>
--
-- /See:/ 'testInvokeAuthorizerResponse' smart constructor.
data TestInvokeAuthorizerResponse = TestInvokeAuthorizerResponse'
{ _tiarsLog :: !(Maybe Text)
, _tiarsPrincipalId :: !(Maybe Text)
, _tiarsLatency :: !(Maybe Integer)
, _tiarsAuthorization :: !(Maybe (Map Text [Text]))
, _tiarsClientStatus :: !(Maybe Int)
, _tiarsPolicy :: !(Maybe Text)
, _tiarsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'TestInvokeAuthorizerResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'tiarsLog'
--
-- * 'tiarsPrincipalId'
--
-- * 'tiarsLatency'
--
-- * 'tiarsAuthorization'
--
-- * 'tiarsClientStatus'
--
-- * 'tiarsPolicy'
--
-- * 'tiarsResponseStatus'
testInvokeAuthorizerResponse
:: Int -- ^ 'tiarsResponseStatus'
-> TestInvokeAuthorizerResponse
testInvokeAuthorizerResponse pResponseStatus_ =
TestInvokeAuthorizerResponse'
{ _tiarsLog = Nothing
, _tiarsPrincipalId = Nothing
, _tiarsLatency = Nothing
, _tiarsAuthorization = Nothing
, _tiarsClientStatus = Nothing
, _tiarsPolicy = Nothing
, _tiarsResponseStatus = pResponseStatus_
}
-- | The Amazon API Gateway execution log for the test authorizer request.
tiarsLog :: Lens' TestInvokeAuthorizerResponse (Maybe Text)
tiarsLog = lens _tiarsLog (\ s a -> s{_tiarsLog = a});
-- | The principal identity returned by the < Authorizer>
tiarsPrincipalId :: Lens' TestInvokeAuthorizerResponse (Maybe Text)
tiarsPrincipalId = lens _tiarsPrincipalId (\ s a -> s{_tiarsPrincipalId = a});
-- | The execution latency of the test authorizer request
tiarsLatency :: Lens' TestInvokeAuthorizerResponse (Maybe Integer)
tiarsLatency = lens _tiarsLatency (\ s a -> s{_tiarsLatency = a});
-- | Undocumented member.
tiarsAuthorization :: Lens' TestInvokeAuthorizerResponse (HashMap Text [Text])
tiarsAuthorization = lens _tiarsAuthorization (\ s a -> s{_tiarsAuthorization = a}) . _Default . _Map;
-- | The HTTP status code that the client would have received. Value is 0 if
-- the authorizer succeeded.
tiarsClientStatus :: Lens' TestInvokeAuthorizerResponse (Maybe Int)
tiarsClientStatus = lens _tiarsClientStatus (\ s a -> s{_tiarsClientStatus = a});
-- | The policy JSON document returned by the < Authorizer>
tiarsPolicy :: Lens' TestInvokeAuthorizerResponse (Maybe Text)
tiarsPolicy = lens _tiarsPolicy (\ s a -> s{_tiarsPolicy = a});
-- | The response status code.
tiarsResponseStatus :: Lens' TestInvokeAuthorizerResponse Int
tiarsResponseStatus = lens _tiarsResponseStatus (\ s a -> s{_tiarsResponseStatus = a});
instance NFData TestInvokeAuthorizerResponse