module Network.AWS.DirectConnect.CreateDirectConnectGateway
(
createDirectConnectGateway
, CreateDirectConnectGateway
, cdcgAmazonSideASN
, cdcgDirectConnectGatewayName
, createDirectConnectGatewayResponse
, CreateDirectConnectGatewayResponse
, cdcgrsDirectConnectGateway
, cdcgrsResponseStatus
) where
import Network.AWS.DirectConnect.Types
import Network.AWS.DirectConnect.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data CreateDirectConnectGateway = CreateDirectConnectGateway'
{ _cdcgAmazonSideASN :: !(Maybe Integer)
, _cdcgDirectConnectGatewayName :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createDirectConnectGateway
:: Text
-> CreateDirectConnectGateway
createDirectConnectGateway pDirectConnectGatewayName_ =
CreateDirectConnectGateway'
{ _cdcgAmazonSideASN = Nothing
, _cdcgDirectConnectGatewayName = pDirectConnectGatewayName_
}
cdcgAmazonSideASN :: Lens' CreateDirectConnectGateway (Maybe Integer)
cdcgAmazonSideASN = lens _cdcgAmazonSideASN (\ s a -> s{_cdcgAmazonSideASN = a});
cdcgDirectConnectGatewayName :: Lens' CreateDirectConnectGateway Text
cdcgDirectConnectGatewayName = lens _cdcgDirectConnectGatewayName (\ s a -> s{_cdcgDirectConnectGatewayName = a});
instance AWSRequest CreateDirectConnectGateway where
type Rs CreateDirectConnectGateway =
CreateDirectConnectGatewayResponse
request = postJSON directConnect
response
= receiveJSON
(\ s h x ->
CreateDirectConnectGatewayResponse' <$>
(x .?> "directConnectGateway") <*>
(pure (fromEnum s)))
instance Hashable CreateDirectConnectGateway where
instance NFData CreateDirectConnectGateway where
instance ToHeaders CreateDirectConnectGateway where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("OvertureService.CreateDirectConnectGateway" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON CreateDirectConnectGateway where
toJSON CreateDirectConnectGateway'{..}
= object
(catMaybes
[("amazonSideAsn" .=) <$> _cdcgAmazonSideASN,
Just
("directConnectGatewayName" .=
_cdcgDirectConnectGatewayName)])
instance ToPath CreateDirectConnectGateway where
toPath = const "/"
instance ToQuery CreateDirectConnectGateway where
toQuery = const mempty
data CreateDirectConnectGatewayResponse = CreateDirectConnectGatewayResponse'
{ _cdcgrsDirectConnectGateway :: !(Maybe DirectConnectGateway)
, _cdcgrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createDirectConnectGatewayResponse
:: Int
-> CreateDirectConnectGatewayResponse
createDirectConnectGatewayResponse pResponseStatus_ =
CreateDirectConnectGatewayResponse'
{ _cdcgrsDirectConnectGateway = Nothing
, _cdcgrsResponseStatus = pResponseStatus_
}
cdcgrsDirectConnectGateway :: Lens' CreateDirectConnectGatewayResponse (Maybe DirectConnectGateway)
cdcgrsDirectConnectGateway = lens _cdcgrsDirectConnectGateway (\ s a -> s{_cdcgrsDirectConnectGateway = a});
cdcgrsResponseStatus :: Lens' CreateDirectConnectGatewayResponse Int
cdcgrsResponseStatus = lens _cdcgrsResponseStatus (\ s a -> s{_cdcgrsResponseStatus = a});
instance NFData CreateDirectConnectGatewayResponse
where