module Network.AWS.CloudFormation.ValidateTemplate
(
validateTemplate
, ValidateTemplate
, vtTemplateBody
, vtTemplateURL
, validateTemplateResponse
, ValidateTemplateResponse
, vtrsCapabilitiesReason
, vtrsParameters
, vtrsDescription
, vtrsCapabilities
, vtrsResponseStatus
) where
import Network.AWS.CloudFormation.Types
import Network.AWS.CloudFormation.Types.Product
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data ValidateTemplate = ValidateTemplate'
{ _vtTemplateBody :: !(Maybe Text)
, _vtTemplateURL :: !(Maybe Text)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
validateTemplate
:: ValidateTemplate
validateTemplate =
ValidateTemplate'
{ _vtTemplateBody = Nothing
, _vtTemplateURL = Nothing
}
vtTemplateBody :: Lens' ValidateTemplate (Maybe Text)
vtTemplateBody = lens _vtTemplateBody (\ s a -> s{_vtTemplateBody = a});
vtTemplateURL :: Lens' ValidateTemplate (Maybe Text)
vtTemplateURL = lens _vtTemplateURL (\ s a -> s{_vtTemplateURL = a});
instance AWSRequest ValidateTemplate where
type Rs ValidateTemplate = ValidateTemplateResponse
request = postQuery cloudFormation
response
= receiveXMLWrapper "ValidateTemplateResult"
(\ s h x ->
ValidateTemplateResponse' <$>
(x .@? "CapabilitiesReason") <*>
(x .@? "Parameters" .!@ mempty >>=
may (parseXMLList "member"))
<*> (x .@? "Description")
<*>
(x .@? "Capabilities" .!@ mempty >>=
may (parseXMLList "member"))
<*> (pure (fromEnum s)))
instance ToHeaders ValidateTemplate where
toHeaders = const mempty
instance ToPath ValidateTemplate where
toPath = const "/"
instance ToQuery ValidateTemplate where
toQuery ValidateTemplate'{..}
= mconcat
["Action" =: ("ValidateTemplate" :: ByteString),
"Version" =: ("2010-05-15" :: ByteString),
"TemplateBody" =: _vtTemplateBody,
"TemplateURL" =: _vtTemplateURL]
data ValidateTemplateResponse = ValidateTemplateResponse'
{ _vtrsCapabilitiesReason :: !(Maybe Text)
, _vtrsParameters :: !(Maybe [TemplateParameter])
, _vtrsDescription :: !(Maybe Text)
, _vtrsCapabilities :: !(Maybe [Capability])
, _vtrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
validateTemplateResponse
:: Int
-> ValidateTemplateResponse
validateTemplateResponse pResponseStatus_ =
ValidateTemplateResponse'
{ _vtrsCapabilitiesReason = Nothing
, _vtrsParameters = Nothing
, _vtrsDescription = Nothing
, _vtrsCapabilities = Nothing
, _vtrsResponseStatus = pResponseStatus_
}
vtrsCapabilitiesReason :: Lens' ValidateTemplateResponse (Maybe Text)
vtrsCapabilitiesReason = lens _vtrsCapabilitiesReason (\ s a -> s{_vtrsCapabilitiesReason = a});
vtrsParameters :: Lens' ValidateTemplateResponse [TemplateParameter]
vtrsParameters = lens _vtrsParameters (\ s a -> s{_vtrsParameters = a}) . _Default . _Coerce;
vtrsDescription :: Lens' ValidateTemplateResponse (Maybe Text)
vtrsDescription = lens _vtrsDescription (\ s a -> s{_vtrsDescription = a});
vtrsCapabilities :: Lens' ValidateTemplateResponse [Capability]
vtrsCapabilities = lens _vtrsCapabilities (\ s a -> s{_vtrsCapabilities = a}) . _Default . _Coerce;
vtrsResponseStatus :: Lens' ValidateTemplateResponse Int
vtrsResponseStatus = lens _vtrsResponseStatus (\ s a -> s{_vtrsResponseStatus = a});