module Network.AWS.CloudFront.UpdateDistribution
(
updateDistribution
, UpdateDistribution
, udIfMatch
, udDistributionConfig
, udId
, updateDistributionResponse
, UpdateDistributionResponse
, udrsETag
, udrsDistribution
, udrsResponseStatus
) where
import Network.AWS.CloudFront.Types
import Network.AWS.CloudFront.Types.Product
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data UpdateDistribution = UpdateDistribution'
{ _udIfMatch :: !(Maybe Text)
, _udDistributionConfig :: !DistributionConfig
, _udId :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
updateDistribution
:: DistributionConfig
-> Text
-> UpdateDistribution
updateDistribution pDistributionConfig_ pId_ =
UpdateDistribution'
{ _udIfMatch = Nothing
, _udDistributionConfig = pDistributionConfig_
, _udId = pId_
}
udIfMatch :: Lens' UpdateDistribution (Maybe Text)
udIfMatch = lens _udIfMatch (\ s a -> s{_udIfMatch = a});
udDistributionConfig :: Lens' UpdateDistribution DistributionConfig
udDistributionConfig = lens _udDistributionConfig (\ s a -> s{_udDistributionConfig = a});
udId :: Lens' UpdateDistribution Text
udId = lens _udId (\ s a -> s{_udId = a});
instance AWSRequest UpdateDistribution where
type Rs UpdateDistribution =
UpdateDistributionResponse
request = putXML cloudFront
response
= receiveXML
(\ s h x ->
UpdateDistributionResponse' <$>
(h .#? "ETag") <*> (parseXML x) <*>
(pure (fromEnum s)))
instance ToElement UpdateDistribution where
toElement
= mkElement
"{http://cloudfront.amazonaws.com/doc/2015-04-17/}DistributionConfig"
.
_udDistributionConfig
instance ToHeaders UpdateDistribution where
toHeaders UpdateDistribution'{..}
= mconcat ["If-Match" =# _udIfMatch]
instance ToPath UpdateDistribution where
toPath UpdateDistribution'{..}
= mconcat
["/2015-04-17/distribution/", toBS _udId, "/config"]
instance ToQuery UpdateDistribution where
toQuery = const mempty
data UpdateDistributionResponse = UpdateDistributionResponse'
{ _udrsETag :: !(Maybe Text)
, _udrsDistribution :: !(Maybe Distribution)
, _udrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
updateDistributionResponse
:: Int
-> UpdateDistributionResponse
updateDistributionResponse pResponseStatus_ =
UpdateDistributionResponse'
{ _udrsETag = Nothing
, _udrsDistribution = Nothing
, _udrsResponseStatus = pResponseStatus_
}
udrsETag :: Lens' UpdateDistributionResponse (Maybe Text)
udrsETag = lens _udrsETag (\ s a -> s{_udrsETag = a});
udrsDistribution :: Lens' UpdateDistributionResponse (Maybe Distribution)
udrsDistribution = lens _udrsDistribution (\ s a -> s{_udrsDistribution = a});
udrsResponseStatus :: Lens' UpdateDistributionResponse Int
udrsResponseStatus = lens _udrsResponseStatus (\ s a -> s{_udrsResponseStatus = a});