{-# 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.PutApplicationPolicy
(
putApplicationPolicy
, PutApplicationPolicy
, papStatements
, papApplicationId
, putApplicationPolicyResponse
, PutApplicationPolicyResponse
, paprsStatements
, paprsResponseStatus
) 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
data PutApplicationPolicy = PutApplicationPolicy'
{ _papStatements :: !(Maybe [ApplicationPolicyStatement])
, _papApplicationId :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
putApplicationPolicy
:: Text
-> PutApplicationPolicy
putApplicationPolicy pApplicationId_ =
PutApplicationPolicy'
{_papStatements = Nothing, _papApplicationId = pApplicationId_}
papStatements :: Lens' PutApplicationPolicy [ApplicationPolicyStatement]
papStatements = lens _papStatements (\ s a -> s{_papStatements = a}) . _Default . _Coerce
papApplicationId :: Lens' PutApplicationPolicy Text
papApplicationId = lens _papApplicationId (\ s a -> s{_papApplicationId = a})
instance AWSRequest PutApplicationPolicy where
type Rs PutApplicationPolicy =
PutApplicationPolicyResponse
request = putJSON serverlessApplicationRepository
response
= receiveJSON
(\ s h x ->
PutApplicationPolicyResponse' <$>
(x .?> "statements" .!@ mempty) <*>
(pure (fromEnum s)))
instance Hashable PutApplicationPolicy where
instance NFData PutApplicationPolicy where
instance ToHeaders PutApplicationPolicy where
toHeaders
= const
(mconcat
["Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON PutApplicationPolicy where
toJSON PutApplicationPolicy'{..}
= object
(catMaybes [("statements" .=) <$> _papStatements])
instance ToPath PutApplicationPolicy where
toPath PutApplicationPolicy'{..}
= mconcat
["/applications/", toBS _papApplicationId, "/policy"]
instance ToQuery PutApplicationPolicy where
toQuery = const mempty
data PutApplicationPolicyResponse = PutApplicationPolicyResponse'
{ _paprsStatements :: !(Maybe [ApplicationPolicyStatement])
, _paprsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
putApplicationPolicyResponse
:: Int
-> PutApplicationPolicyResponse
putApplicationPolicyResponse pResponseStatus_ =
PutApplicationPolicyResponse'
{_paprsStatements = Nothing, _paprsResponseStatus = pResponseStatus_}
paprsStatements :: Lens' PutApplicationPolicyResponse [ApplicationPolicyStatement]
paprsStatements = lens _paprsStatements (\ s a -> s{_paprsStatements = a}) . _Default . _Coerce
paprsResponseStatus :: Lens' PutApplicationPolicyResponse Int
paprsResponseStatus = lens _paprsResponseStatus (\ s a -> s{_paprsResponseStatus = a})
instance NFData PutApplicationPolicyResponse where