module Network.AWS.EC2.CreateVPNGateway
(
createVPNGateway
, CreateVPNGateway
, cvgAvailabilityZone
, cvgDryRun
, cvgType
, createVPNGatewayResponse
, CreateVPNGatewayResponse
, cvgrsVPNGateway
, cvgrsResponseStatus
) where
import Network.AWS.EC2.Types
import Network.AWS.EC2.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data CreateVPNGateway = CreateVPNGateway'
{ _cvgAvailabilityZone :: !(Maybe Text)
, _cvgDryRun :: !(Maybe Bool)
, _cvgType :: !GatewayType
} deriving (Eq,Read,Show,Data,Typeable,Generic)
createVPNGateway
:: GatewayType
-> CreateVPNGateway
createVPNGateway pType_ =
CreateVPNGateway'
{ _cvgAvailabilityZone = Nothing
, _cvgDryRun = Nothing
, _cvgType = pType_
}
cvgAvailabilityZone :: Lens' CreateVPNGateway (Maybe Text)
cvgAvailabilityZone = lens _cvgAvailabilityZone (\ s a -> s{_cvgAvailabilityZone = a});
cvgDryRun :: Lens' CreateVPNGateway (Maybe Bool)
cvgDryRun = lens _cvgDryRun (\ s a -> s{_cvgDryRun = a});
cvgType :: Lens' CreateVPNGateway GatewayType
cvgType = lens _cvgType (\ s a -> s{_cvgType = a});
instance AWSRequest CreateVPNGateway where
type Rs CreateVPNGateway = CreateVPNGatewayResponse
request = postQuery ec2
response
= receiveXML
(\ s h x ->
CreateVPNGatewayResponse' <$>
(x .@? "vpnGateway") <*> (pure (fromEnum s)))
instance Hashable CreateVPNGateway
instance ToHeaders CreateVPNGateway where
toHeaders = const mempty
instance ToPath CreateVPNGateway where
toPath = const "/"
instance ToQuery CreateVPNGateway where
toQuery CreateVPNGateway'{..}
= mconcat
["Action" =: ("CreateVpnGateway" :: ByteString),
"Version" =: ("2015-10-01" :: ByteString),
"AvailabilityZone" =: _cvgAvailabilityZone,
"DryRun" =: _cvgDryRun, "Type" =: _cvgType]
data CreateVPNGatewayResponse = CreateVPNGatewayResponse'
{ _cvgrsVPNGateway :: !(Maybe VPNGateway)
, _cvgrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
createVPNGatewayResponse
:: Int
-> CreateVPNGatewayResponse
createVPNGatewayResponse pResponseStatus_ =
CreateVPNGatewayResponse'
{ _cvgrsVPNGateway = Nothing
, _cvgrsResponseStatus = pResponseStatus_
}
cvgrsVPNGateway :: Lens' CreateVPNGatewayResponse (Maybe VPNGateway)
cvgrsVPNGateway = lens _cvgrsVPNGateway (\ s a -> s{_cvgrsVPNGateway = a});
cvgrsResponseStatus :: Lens' CreateVPNGatewayResponse Int
cvgrsResponseStatus = lens _cvgrsResponseStatus (\ s a -> s{_cvgrsResponseStatus = a});