module Network.AWS.CloudFront.CreateInvalidation
(
createInvalidation
, CreateInvalidation
, ciDistributionId
, ciInvalidationBatch
, createInvalidationResponse
, CreateInvalidationResponse
, cirsInvalidation
, cirsLocation
, cirsResponseStatus
) 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 CreateInvalidation = CreateInvalidation'
{ _ciDistributionId :: !Text
, _ciInvalidationBatch :: !InvalidationBatch
} deriving (Eq,Read,Show,Data,Typeable,Generic)
createInvalidation
:: Text
-> InvalidationBatch
-> CreateInvalidation
createInvalidation pDistributionId_ pInvalidationBatch_ =
CreateInvalidation'
{ _ciDistributionId = pDistributionId_
, _ciInvalidationBatch = pInvalidationBatch_
}
ciDistributionId :: Lens' CreateInvalidation Text
ciDistributionId = lens _ciDistributionId (\ s a -> s{_ciDistributionId = a});
ciInvalidationBatch :: Lens' CreateInvalidation InvalidationBatch
ciInvalidationBatch = lens _ciInvalidationBatch (\ s a -> s{_ciInvalidationBatch = a});
instance AWSRequest CreateInvalidation where
type Rs CreateInvalidation =
CreateInvalidationResponse
request = postXML cloudFront
response
= receiveXML
(\ s h x ->
CreateInvalidationResponse' <$>
(parseXML x) <*> (h .#? "Location") <*>
(pure (fromEnum s)))
instance ToElement CreateInvalidation where
toElement
= mkElement
"{http://cloudfront.amazonaws.com/doc/2015-04-17/}InvalidationBatch"
.
_ciInvalidationBatch
instance ToHeaders CreateInvalidation where
toHeaders = const mempty
instance ToPath CreateInvalidation where
toPath CreateInvalidation'{..}
= mconcat
["/2015-04-17/distribution/", toBS _ciDistributionId,
"/invalidation"]
instance ToQuery CreateInvalidation where
toQuery = const mempty
data CreateInvalidationResponse = CreateInvalidationResponse'
{ _cirsInvalidation :: !(Maybe Invalidation)
, _cirsLocation :: !(Maybe Text)
, _cirsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
createInvalidationResponse
:: Int
-> CreateInvalidationResponse
createInvalidationResponse pResponseStatus_ =
CreateInvalidationResponse'
{ _cirsInvalidation = Nothing
, _cirsLocation = Nothing
, _cirsResponseStatus = pResponseStatus_
}
cirsInvalidation :: Lens' CreateInvalidationResponse (Maybe Invalidation)
cirsInvalidation = lens _cirsInvalidation (\ s a -> s{_cirsInvalidation = a});
cirsLocation :: Lens' CreateInvalidationResponse (Maybe Text)
cirsLocation = lens _cirsLocation (\ s a -> s{_cirsLocation = a});
cirsResponseStatus :: Lens' CreateInvalidationResponse Int
cirsResponseStatus = lens _cirsResponseStatus (\ s a -> s{_cirsResponseStatus = a});