{-# 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.AttachNetworkInterface
(
attachNetworkInterface
, AttachNetworkInterface
, aniDryRun
, aniDeviceIndex
, aniInstanceId
, aniNetworkInterfaceId
, attachNetworkInterfaceResponse
, AttachNetworkInterfaceResponse
, anirsAttachmentId
, anirsResponseStatus
) 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 AttachNetworkInterface = AttachNetworkInterface'
{ _aniDryRun :: !(Maybe Bool)
, _aniDeviceIndex :: !Int
, _aniInstanceId :: !Text
, _aniNetworkInterfaceId :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
attachNetworkInterface
:: Int
-> Text
-> Text
-> AttachNetworkInterface
attachNetworkInterface pDeviceIndex_ pInstanceId_ pNetworkInterfaceId_ =
AttachNetworkInterface'
{ _aniDryRun = Nothing
, _aniDeviceIndex = pDeviceIndex_
, _aniInstanceId = pInstanceId_
, _aniNetworkInterfaceId = pNetworkInterfaceId_
}
aniDryRun :: Lens' AttachNetworkInterface (Maybe Bool)
aniDryRun = lens _aniDryRun (\ s a -> s{_aniDryRun = a})
aniDeviceIndex :: Lens' AttachNetworkInterface Int
aniDeviceIndex = lens _aniDeviceIndex (\ s a -> s{_aniDeviceIndex = a})
aniInstanceId :: Lens' AttachNetworkInterface Text
aniInstanceId = lens _aniInstanceId (\ s a -> s{_aniInstanceId = a})
aniNetworkInterfaceId :: Lens' AttachNetworkInterface Text
aniNetworkInterfaceId = lens _aniNetworkInterfaceId (\ s a -> s{_aniNetworkInterfaceId = a})
instance AWSRequest AttachNetworkInterface where
type Rs AttachNetworkInterface =
AttachNetworkInterfaceResponse
request = postQuery ec2
response
= receiveXML
(\ s h x ->
AttachNetworkInterfaceResponse' <$>
(x .@? "attachmentId") <*> (pure (fromEnum s)))
instance Hashable AttachNetworkInterface where
instance NFData AttachNetworkInterface where
instance ToHeaders AttachNetworkInterface where
toHeaders = const mempty
instance ToPath AttachNetworkInterface where
toPath = const "/"
instance ToQuery AttachNetworkInterface where
toQuery AttachNetworkInterface'{..}
= mconcat
["Action" =:
("AttachNetworkInterface" :: ByteString),
"Version" =: ("2016-11-15" :: ByteString),
"DryRun" =: _aniDryRun,
"DeviceIndex" =: _aniDeviceIndex,
"InstanceId" =: _aniInstanceId,
"NetworkInterfaceId" =: _aniNetworkInterfaceId]
data AttachNetworkInterfaceResponse = AttachNetworkInterfaceResponse'
{ _anirsAttachmentId :: !(Maybe Text)
, _anirsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
attachNetworkInterfaceResponse
:: Int
-> AttachNetworkInterfaceResponse
attachNetworkInterfaceResponse pResponseStatus_ =
AttachNetworkInterfaceResponse'
{_anirsAttachmentId = Nothing, _anirsResponseStatus = pResponseStatus_}
anirsAttachmentId :: Lens' AttachNetworkInterfaceResponse (Maybe Text)
anirsAttachmentId = lens _anirsAttachmentId (\ s a -> s{_anirsAttachmentId = a})
anirsResponseStatus :: Lens' AttachNetworkInterfaceResponse Int
anirsResponseStatus = lens _anirsResponseStatus (\ s a -> s{_anirsResponseStatus = a})
instance NFData AttachNetworkInterfaceResponse where