module Network.AWS.CloudFront.CreateDistribution
(
CreateDistribution
, createDistribution
, cdDistributionConfig
, CreateDistributionResponse
, createDistributionResponse
, cdrDistribution
, cdrETag
, cdrLocation
) where
import Network.AWS.Prelude
import Network.AWS.Request.RestXML
import Network.AWS.CloudFront.Types
import qualified GHC.Exts
newtype CreateDistribution = CreateDistribution
{ _cdDistributionConfig :: DistributionConfig
} deriving (Eq, Read, Show)
createDistribution :: DistributionConfig
-> CreateDistribution
createDistribution p1 = CreateDistribution
{ _cdDistributionConfig = p1
}
cdDistributionConfig :: Lens' CreateDistribution DistributionConfig
cdDistributionConfig =
lens _cdDistributionConfig (\s a -> s { _cdDistributionConfig = a })
data CreateDistributionResponse = CreateDistributionResponse
{ _cdrDistribution :: Maybe Distribution
, _cdrETag :: Maybe Text
, _cdrLocation :: Maybe Text
} deriving (Eq, Read, Show)
createDistributionResponse :: CreateDistributionResponse
createDistributionResponse = CreateDistributionResponse
{ _cdrDistribution = Nothing
, _cdrLocation = Nothing
, _cdrETag = Nothing
}
cdrDistribution :: Lens' CreateDistributionResponse (Maybe Distribution)
cdrDistribution = lens _cdrDistribution (\s a -> s { _cdrDistribution = a })
cdrETag :: Lens' CreateDistributionResponse (Maybe Text)
cdrETag = lens _cdrETag (\s a -> s { _cdrETag = a })
cdrLocation :: Lens' CreateDistributionResponse (Maybe Text)
cdrLocation = lens _cdrLocation (\s a -> s { _cdrLocation = a })
instance ToPath CreateDistribution where
toPath = const "/2014-11-06/distribution"
instance ToQuery CreateDistribution where
toQuery = const mempty
instance ToHeaders CreateDistribution
instance ToXMLRoot CreateDistribution where
toXMLRoot CreateDistribution{..} = namespaced ns "CreateDistribution"
[ "DistributionConfig" =@ _cdDistributionConfig
]
instance ToXML CreateDistribution
instance AWSRequest CreateDistribution where
type Sv CreateDistribution = CloudFront
type Rs CreateDistribution = CreateDistributionResponse
request = post
response = xmlHeaderResponse $ \h x -> CreateDistributionResponse
<$> x .@? "Distribution"
<*> h ~:? "ETag"
<*> h ~:? "Location"