module Network.AWS.CloudFront.GetDistribution
(
getDistribution
, GetDistribution
, gdId
, getDistributionResponse
, GetDistributionResponse
, gdrsETag
, gdrsDistribution
, gdrsStatus
) where
import Network.AWS.CloudFront.Types
import Network.AWS.CloudFront.Types.Product
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
newtype GetDistribution = GetDistribution'
{ _gdId :: Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
getDistribution
:: Text
-> GetDistribution
getDistribution pId_ =
GetDistribution'
{ _gdId = pId_
}
gdId :: Lens' GetDistribution Text
gdId = lens _gdId (\ s a -> s{_gdId = a});
instance AWSRequest GetDistribution where
type Sv GetDistribution = CloudFront
type Rs GetDistribution = GetDistributionResponse
request = get
response
= receiveXML
(\ s h x ->
GetDistributionResponse' <$>
(h .#? "ETag") <*> (parseXML x) <*>
(pure (fromEnum s)))
instance ToHeaders GetDistribution where
toHeaders = const mempty
instance ToPath GetDistribution where
toPath GetDistribution'{..}
= mconcat ["/2015-04-17/distribution/", toBS _gdId]
instance ToQuery GetDistribution where
toQuery = const mempty
data GetDistributionResponse = GetDistributionResponse'
{ _gdrsETag :: !(Maybe Text)
, _gdrsDistribution :: !(Maybe Distribution)
, _gdrsStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
getDistributionResponse
:: Int
-> GetDistributionResponse
getDistributionResponse pStatus_ =
GetDistributionResponse'
{ _gdrsETag = Nothing
, _gdrsDistribution = Nothing
, _gdrsStatus = pStatus_
}
gdrsETag :: Lens' GetDistributionResponse (Maybe Text)
gdrsETag = lens _gdrsETag (\ s a -> s{_gdrsETag = a});
gdrsDistribution :: Lens' GetDistributionResponse (Maybe Distribution)
gdrsDistribution = lens _gdrsDistribution (\ s a -> s{_gdrsDistribution = a});
gdrsStatus :: Lens' GetDistributionResponse Int
gdrsStatus = lens _gdrsStatus (\ s a -> s{_gdrsStatus = a});