{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Network.AWS.EC2.AttachClassicLinkVPC
(
attachClassicLinkVPC
, AttachClassicLinkVPC
, aclvDryRun
, aclvGroups
, aclvInstanceId
, aclvVPCId
, attachClassicLinkVPCResponse
, AttachClassicLinkVPCResponse
, aclvrsReturn
, aclvrsResponseStatus
) 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 AttachClassicLinkVPC = AttachClassicLinkVPC'
{ _aclvDryRun :: !(Maybe Bool)
, _aclvGroups :: ![Text]
, _aclvInstanceId :: !Text
, _aclvVPCId :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
attachClassicLinkVPC
:: Text
-> Text
-> AttachClassicLinkVPC
attachClassicLinkVPC pInstanceId_ pVPCId_ =
AttachClassicLinkVPC'
{ _aclvDryRun = Nothing
, _aclvGroups = mempty
, _aclvInstanceId = pInstanceId_
, _aclvVPCId = pVPCId_
}
aclvDryRun :: Lens' AttachClassicLinkVPC (Maybe Bool)
aclvDryRun = lens _aclvDryRun (\ s a -> s{_aclvDryRun = a})
aclvGroups :: Lens' AttachClassicLinkVPC [Text]
aclvGroups = lens _aclvGroups (\ s a -> s{_aclvGroups = a}) . _Coerce
aclvInstanceId :: Lens' AttachClassicLinkVPC Text
aclvInstanceId = lens _aclvInstanceId (\ s a -> s{_aclvInstanceId = a})
aclvVPCId :: Lens' AttachClassicLinkVPC Text
aclvVPCId = lens _aclvVPCId (\ s a -> s{_aclvVPCId = a})
instance AWSRequest AttachClassicLinkVPC where
type Rs AttachClassicLinkVPC =
AttachClassicLinkVPCResponse
request = postQuery ec2
response
= receiveXML
(\ s h x ->
AttachClassicLinkVPCResponse' <$>
(x .@? "return") <*> (pure (fromEnum s)))
instance Hashable AttachClassicLinkVPC where
instance NFData AttachClassicLinkVPC where
instance ToHeaders AttachClassicLinkVPC where
toHeaders = const mempty
instance ToPath AttachClassicLinkVPC where
toPath = const "/"
instance ToQuery AttachClassicLinkVPC where
toQuery AttachClassicLinkVPC'{..}
= mconcat
["Action" =: ("AttachClassicLinkVpc" :: ByteString),
"Version" =: ("2016-11-15" :: ByteString),
"DryRun" =: _aclvDryRun,
toQueryList "SecurityGroupId" _aclvGroups,
"InstanceId" =: _aclvInstanceId,
"VpcId" =: _aclvVPCId]
data AttachClassicLinkVPCResponse = AttachClassicLinkVPCResponse'
{ _aclvrsReturn :: !(Maybe Bool)
, _aclvrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
attachClassicLinkVPCResponse
:: Int
-> AttachClassicLinkVPCResponse
attachClassicLinkVPCResponse pResponseStatus_ =
AttachClassicLinkVPCResponse'
{_aclvrsReturn = Nothing, _aclvrsResponseStatus = pResponseStatus_}
aclvrsReturn :: Lens' AttachClassicLinkVPCResponse (Maybe Bool)
aclvrsReturn = lens _aclvrsReturn (\ s a -> s{_aclvrsReturn = a})
aclvrsResponseStatus :: Lens' AttachClassicLinkVPCResponse Int
aclvrsResponseStatus = lens _aclvrsResponseStatus (\ s a -> s{_aclvrsResponseStatus = a})
instance NFData AttachClassicLinkVPCResponse where