module Network.AWS.CloudFront.CreateStreamingDistribution
(
createStreamingDistribution
, CreateStreamingDistribution
, csdStreamingDistributionConfig
, createStreamingDistributionResponse
, CreateStreamingDistributionResponse
, csdrsETag
, csdrsLocation
, csdrsStreamingDistribution
, csdrsStatus
) 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 CreateStreamingDistribution = CreateStreamingDistribution'
{ _csdStreamingDistributionConfig :: StreamingDistributionConfig
} deriving (Eq,Read,Show,Data,Typeable,Generic)
createStreamingDistribution
:: StreamingDistributionConfig
-> CreateStreamingDistribution
createStreamingDistribution pStreamingDistributionConfig_ =
CreateStreamingDistribution'
{ _csdStreamingDistributionConfig = pStreamingDistributionConfig_
}
csdStreamingDistributionConfig :: Lens' CreateStreamingDistribution StreamingDistributionConfig
csdStreamingDistributionConfig = lens _csdStreamingDistributionConfig (\ s a -> s{_csdStreamingDistributionConfig = a});
instance AWSRequest CreateStreamingDistribution where
type Rs CreateStreamingDistribution =
CreateStreamingDistributionResponse
request = postXML cloudFront
response
= receiveXML
(\ s h x ->
CreateStreamingDistributionResponse' <$>
(h .#? "ETag") <*> (h .#? "Location") <*>
(parseXML x)
<*> (pure (fromEnum s)))
instance ToElement CreateStreamingDistribution where
toElement
= mkElement
"{http://cloudfront.amazonaws.com/doc/2015-04-17/}StreamingDistributionConfig"
.
_csdStreamingDistributionConfig
instance ToHeaders CreateStreamingDistribution where
toHeaders = const mempty
instance ToPath CreateStreamingDistribution where
toPath = const "/2015-04-17/streaming-distribution"
instance ToQuery CreateStreamingDistribution where
toQuery = const mempty
data CreateStreamingDistributionResponse = CreateStreamingDistributionResponse'
{ _csdrsETag :: !(Maybe Text)
, _csdrsLocation :: !(Maybe Text)
, _csdrsStreamingDistribution :: !(Maybe StreamingDistribution)
, _csdrsStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
createStreamingDistributionResponse
:: Int
-> CreateStreamingDistributionResponse
createStreamingDistributionResponse pStatus_ =
CreateStreamingDistributionResponse'
{ _csdrsETag = Nothing
, _csdrsLocation = Nothing
, _csdrsStreamingDistribution = Nothing
, _csdrsStatus = pStatus_
}
csdrsETag :: Lens' CreateStreamingDistributionResponse (Maybe Text)
csdrsETag = lens _csdrsETag (\ s a -> s{_csdrsETag = a});
csdrsLocation :: Lens' CreateStreamingDistributionResponse (Maybe Text)
csdrsLocation = lens _csdrsLocation (\ s a -> s{_csdrsLocation = a});
csdrsStreamingDistribution :: Lens' CreateStreamingDistributionResponse (Maybe StreamingDistribution)
csdrsStreamingDistribution = lens _csdrsStreamingDistribution (\ s a -> s{_csdrsStreamingDistribution = a});
csdrsStatus :: Lens' CreateStreamingDistributionResponse Int
csdrsStatus = lens _csdrsStatus (\ s a -> s{_csdrsStatus = a});