{-# 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.CloudWatchLogs.PutResourcePolicy
(
putResourcePolicy
, PutResourcePolicy
, prpPolicyName
, prpPolicyDocument
, putResourcePolicyResponse
, PutResourcePolicyResponse
, prprsResourcePolicy
, prprsResponseStatus
) where
import Network.AWS.CloudWatchLogs.Types
import Network.AWS.CloudWatchLogs.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data PutResourcePolicy = PutResourcePolicy'
{ _prpPolicyName :: !(Maybe Text)
, _prpPolicyDocument :: !(Maybe Text)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
putResourcePolicy
:: PutResourcePolicy
putResourcePolicy =
PutResourcePolicy' {_prpPolicyName = Nothing, _prpPolicyDocument = Nothing}
prpPolicyName :: Lens' PutResourcePolicy (Maybe Text)
prpPolicyName = lens _prpPolicyName (\ s a -> s{_prpPolicyName = a})
prpPolicyDocument :: Lens' PutResourcePolicy (Maybe Text)
prpPolicyDocument = lens _prpPolicyDocument (\ s a -> s{_prpPolicyDocument = a})
instance AWSRequest PutResourcePolicy where
type Rs PutResourcePolicy = PutResourcePolicyResponse
request = postJSON cloudWatchLogs
response
= receiveJSON
(\ s h x ->
PutResourcePolicyResponse' <$>
(x .?> "resourcePolicy") <*> (pure (fromEnum s)))
instance Hashable PutResourcePolicy where
instance NFData PutResourcePolicy where
instance ToHeaders PutResourcePolicy where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("Logs_20140328.PutResourcePolicy" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON PutResourcePolicy where
toJSON PutResourcePolicy'{..}
= object
(catMaybes
[("policyName" .=) <$> _prpPolicyName,
("policyDocument" .=) <$> _prpPolicyDocument])
instance ToPath PutResourcePolicy where
toPath = const "/"
instance ToQuery PutResourcePolicy where
toQuery = const mempty
data PutResourcePolicyResponse = PutResourcePolicyResponse'
{ _prprsResourcePolicy :: !(Maybe ResourcePolicy)
, _prprsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
putResourcePolicyResponse
:: Int
-> PutResourcePolicyResponse
putResourcePolicyResponse pResponseStatus_ =
PutResourcePolicyResponse'
{_prprsResourcePolicy = Nothing, _prprsResponseStatus = pResponseStatus_}
prprsResourcePolicy :: Lens' PutResourcePolicyResponse (Maybe ResourcePolicy)
prprsResourcePolicy = lens _prprsResourcePolicy (\ s a -> s{_prprsResourcePolicy = a})
prprsResponseStatus :: Lens' PutResourcePolicyResponse Int
prprsResponseStatus = lens _prprsResponseStatus (\ s a -> s{_prprsResponseStatus = a})
instance NFData PutResourcePolicyResponse where