{-# 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.ServerlessApplicationRepository.GetApplicationPolicy
(
getApplicationPolicy
, GetApplicationPolicy
, gapApplicationId
, getApplicationPolicyResponse
, GetApplicationPolicyResponse
, gaprsStatements
, gaprsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.ServerlessApplicationRepository.Types
import Network.AWS.ServerlessApplicationRepository.Types.Product
newtype GetApplicationPolicy = GetApplicationPolicy'
{ _gapApplicationId :: Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
getApplicationPolicy
:: Text
-> GetApplicationPolicy
getApplicationPolicy pApplicationId_ =
GetApplicationPolicy' {_gapApplicationId = pApplicationId_}
gapApplicationId :: Lens' GetApplicationPolicy Text
gapApplicationId = lens _gapApplicationId (\ s a -> s{_gapApplicationId = a})
instance AWSRequest GetApplicationPolicy where
type Rs GetApplicationPolicy =
GetApplicationPolicyResponse
request = get serverlessApplicationRepository
response
= receiveJSON
(\ s h x ->
GetApplicationPolicyResponse' <$>
(x .?> "statements" .!@ mempty) <*>
(pure (fromEnum s)))
instance Hashable GetApplicationPolicy where
instance NFData GetApplicationPolicy where
instance ToHeaders GetApplicationPolicy where
toHeaders
= const
(mconcat
["Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToPath GetApplicationPolicy where
toPath GetApplicationPolicy'{..}
= mconcat
["/applications/", toBS _gapApplicationId, "/policy"]
instance ToQuery GetApplicationPolicy where
toQuery = const mempty
data GetApplicationPolicyResponse = GetApplicationPolicyResponse'
{ _gaprsStatements :: !(Maybe [ApplicationPolicyStatement])
, _gaprsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
getApplicationPolicyResponse
:: Int
-> GetApplicationPolicyResponse
getApplicationPolicyResponse pResponseStatus_ =
GetApplicationPolicyResponse'
{_gaprsStatements = Nothing, _gaprsResponseStatus = pResponseStatus_}
gaprsStatements :: Lens' GetApplicationPolicyResponse [ApplicationPolicyStatement]
gaprsStatements = lens _gaprsStatements (\ s a -> s{_gaprsStatements = a}) . _Default . _Coerce
gaprsResponseStatus :: Lens' GetApplicationPolicyResponse Int
gaprsResponseStatus = lens _gaprsResponseStatus (\ s a -> s{_gaprsResponseStatus = a})
instance NFData GetApplicationPolicyResponse where